Formatierungsfehler bei Double

 

Hallo,

ich bekomme es nicht hin(im MT5), dass ich bei Abfrage des aktuellen Kurses immer die gleiche Anzahl Nachkommastellen in der Variable gespeichert werden. Solange der Kurs z.B. 1.12345 lautet ist alles in Ordnung.

Lautet der Kurs aber 1.12340, wird nur 1.1234 zurückgegeben und wenn der Kurs z.B. 1.12300 ist, wird nur 1.123 zurückgegeben. Es werden also von hinten gesehen immer alle "0" - Stellen automatisch "entfernt bzw. nicht angezeigt."

Auch der Versuch, dies mit NormalDouble hinzubekommen, schlägt fehl. Auch testweise Verwendung von string und float als Variablentyp brachte hier keine Lösung!

Was muss ich ändern? Ich habe keine Idee mehr? Ich bitte um Hilfe.

Vielen Dank im voraus....Grüße fr4kl


Diese Varianten funktieren leider nicht:

Double Kurs;

//Echtzeitkurs speichern
 Kurs = SymbolInfoDouble(_Symbol,SYMBOL_ASK);
 Print (NormalizeDouble(Kurs,5));

oder

//Echtzeitkurs speichern
 Kurs = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),5);
 Print (Kurs);

 
fr4kl:

Hallo,

ich bekomme es nicht hin(im MT5), dass ich bei Abfrage des aktuellen Kurses immer die gleiche Anzahl Nachkommastellen in der Variable gespeichert werden. Solange der Kurs z.B. 1.12345 lautet ist alles in Ordnung.

Lautet der Kurs aber 1.12340, wird nur 1.1234 zurückgegeben und wenn der Kurs z.B. 1.12300 ist, wird nur 1.123 zurückgegeben. Es werden also von hinten gesehen immer alle "0" - Stellen automatisch "entfernt bzw. nicht angezeigt."

Auch der Versuch, dies mit NormalDouble hinzubekommen, schlägt fehl. Auch testweise Verwendung von string und float als Variablentyp brachte hier keine Lösung!

Was muss ich ändern? Ich habe keine Idee mehr? Ich bitte um Hilfe.

Vielen Dank im voraus....Grüße fr4kl


Diese Varianten funktieren leider nicht:

Double Kurs;

//Echtzeitkurs speichern
 Kurs = SymbolInfoDouble(_Symbol,SYMBOL_ASK);
 Print (NormalizeDouble(Kurs,5));

oder

//Echtzeitkurs speichern
 Kurs = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),5);
 Print (Kurs);

was hast Du denn vor mit dem Ergebnis,

Prinzipell gibts bei 1.1234 nichts zu runden auf 5 Stellen, sogesehen funktioniert die Funktion auch richtig.

Hast Du schon

MathRound(..,_Digits);

probiert?

 
fr4kl:

Hallo,

ich bekomme es nicht hin(im MT5), dass ich bei Abfrage des aktuellen Kurses immer die gleiche Anzahl Nachkommastellen in der Variable gespeichert werden. Solange der Kurs z.B. 1.12345 lautet ist alles in Ordnung.

Lautet der Kurs aber 1.12340, wird nur 1.1234 zurückgegeben und wenn der Kurs z.B. 1.12300 ist, wird nur 1.123 zurückgegeben. Es werden also von hinten gesehen immer alle "0" - Stellen automatisch "entfernt bzw. nicht angezeigt."

Auch der Versuch, dies mit NormalDouble hinzubekommen, schlägt fehl. Auch testweise Verwendung von string und float als Variablentyp brachte hier keine Lösung!

Was muss ich ändern? Ich habe keine Idee mehr? Ich bitte um Hilfe.

Vielen Dank im voraus....Grüße fr4kl


Diese Varianten funktieren leider nicht:

Double Kurs;

//Echtzeitkurs speichern
 Kurs = SymbolInfoDouble(_Symbol,SYMBOL_ASK);
 Print (NormalizeDouble(Kurs,5));

oder

//Echtzeitkurs speichern
 Kurs = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),5);
 Print (Kurs);

Nimm PrintFormat()