Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Wie kann ich einen Wert abrunden? (http://www.expert-advisor.com/forum/showthread.php?t=1347)

mFX 10.09.12 16:07

Zitat:

Zitat von Bohne (Beitrag 2630)
int HILF_NEUKURS = aktueller_Kurs * 100;
double NEUKURS = HILF_KURS / 100;

Danke Dir nochmal, Bohne. Habe diese Variante ausprobiert. Dabei musste ich einen Zwischenschritt einbauen, da der Ausgabewert für "NEUKURS" aus welchem Grund auch immer "0" war, obwohl HILF_NEUKURS richtig ausgegeben wurde. Kann es sein, dass die Umwandlung von int in double immer einen Zwischenschritt benötigt, zumindest wenn dividiert werden soll?

Folgende Ergänzung führte zum gewünschten Erfolg:
int HILF_NEUKURS = aktueller_Kurs * 100;
double ZWISCHEN_NEUKURS = HILF_NEUKURS * 10;
double NEUKURS = ZWISCHEN_NEUKURS / 1000;

souspreneur 11.09.12 16:39

mathematisch lassen sich solche fragen leicht lösen.
es macht natürlich unterschied, ob ich den eur/usd kurs oder
AccountFreeMargin als grundlage für die LotSize habe.

lg souspreneur

Programmierer 11.09.12 17:07

Zitat:

Zitat von mFX (Beitrag 16845)
Danke Dir nochmal, Bohne. Habe diese Variante ausprobiert. Dabei musste ich einen Zwischenschritt einbauen, da der Ausgabewert für "NEUKURS" aus welchem Grund auch immer "0" war, obwohl HILF_NEUKURS richtig ausgegeben wurde. Kann es sein, dass die Umwandlung von int in double immer einen Zwischenschritt benötigt, zumindest wenn dividiert werden soll?

Folgende Ergänzung führte zum gewünschten Erfolg:
int HILF_NEUKURS = aktueller_Kurs * 100;
double ZWISCHEN_NEUKURS = HILF_NEUKURS * 10;
double NEUKURS = ZWISCHEN_NEUKURS / 1000;

ja, behalte das ruhig so bei. Ich habe auch festgestellt, dass man ohne den Zwischenschritt nicht auskommt. Und mach am besten n Kommentar dazu in den Code, sonst wunderst du dich n halbes Jahr später, wieso dus so kompliziert gemacht hast, vereinfachst den Code und wunderst dich, wieso es nicht mehr funktioniert :). Ist mir letztens genauso passiert.

mFX 18.09.12 18:02

Danke für den Tipp, Programmierer.

derumuro 30.11.12 19:02

Hallo Privex_MT,

mit der Funktion

PHP-Code:

NormalizeDouble(DeinWert,2); 

wird der Wert auf zwei Stellen nach dem Komma angezeigt.
Das ist zwar nicht abgerundet, aber das Ergebnis ist das, welches Du haben willst.

Gruß
derumuro


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:39 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum