Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
float ist die Kastration von Zahlen und bietet keinen Vorteil. Es ist besser, alle Verluste bei den Umrechnungen in Kauf zu nehmen und die höchstmögliche Genauigkeit zu verwenden - das Doppelte.
Ich danke Ihnen. Ich werde versuchen, herauszufinden, wo mein Fehler lag. In der Zwischenzeit funktioniert der Wagen. Ich bin es nicht gewohnt, aufzuhören. Aber dieser Fehler hat mich aus der Bahn geworfen.
Ich persönlich verwende bei Berechnungen und Zahlenvergleichen nie die Methode, die Differenz mit einem minimalen akzeptierten Wert zu vergleichen, ich arbeite immer mit der maximal möglichen Genauigkeit bis zum 16ten Zeichen, und erst in der letzten Operation führe ich eine Normalisierung durch. Wenn Sie das Doppelte richtig handhaben, gibt es kein Problem, was ich Ihnen empfehle. Andernfalls werden Sie Probleme mit der Verzerrung der Ergebnisse haben, die mit einem Verlust der Genauigkeit in einem der Schritte der Berechnungen/Umrechnungen verbunden sind.
Es bleibt Ihnen überlassen, aber beachten Sie, dass ALLE Standard-Mathefunktionen mit doppelten Zahlen arbeiten und doppelte Ergebnisse liefern. Die Anwendung dieser Funktionen auf Fließkommazahlen ist immer noch eine interne Konvertierung in Double, so dass in jedem Fall die Genauigkeit und Gültigkeit der erhaltenen Ergebnisse verloren geht.
Ich persönlich verwende bei Berechnungen und Zahlenvergleichen nie die Methode, die Differenz mit einem minimalen akzeptierten Wert zu vergleichen, ich arbeite immer mit der maximal möglichen Genauigkeit bis zum 16ten Zeichen, und erst in der letzten Operation führe ich eine Normalisierung durch. Wenn Sie mit Double richtig keine Probleme, die ich Ihnen raten zu tun, sonst werden Sie Probleme mit Verzerrung der Ergebnisse mit einem Verlust an Genauigkeit in einem der Schritte der Berechnungen / Konvertierungen verbunden begegnen.
der Bewertungspreis im Jahr 2017 ist unverschämt korrekt
der Bewertungspreis im Jahr 2017 ist unverschämt korrekt
so sollte es sein
double AUTOPRICE=MathFloor( NormalizeDouble(Averab,2) )*_Point;
sollte es so sein.
double AUTOPRICE=MathFloor( NormalizeDouble(Averab,2) )*_Point;
Sie haben Ihren Code mehrmals geändert.
Ich habe das Gleiche gemacht: Ich habe experimentiert, ich habe verstanden, was double und int sind, aber wenn ich es explizit berechne, bekomme ich das Falsche.
Die erste Zeile ist das, was Sie vorgeschlagen haben.
2017.02.26 18:24:59.133 2017.01.02 00:03:00 Exp - DOUBLE TEST MATHFLOOR EURUSD,M30: DOUBLE askP2=105146 bidP2=105141 Averab2=105143.5000000000 AUTOPRICE=1.0514300000
2017.02.26 18:24:59.133 2017.01.02 00:03:00 Exp - DOUBLE TEST MATHFLOOR EURUSD,M30: FLOAT askP=105146 bidP=105141 Averab=105143.5000000000 AUTOPRICE=1.0514299870
das ist richtig105143.5000000000 abgerundet 43 ist...
(46-41)/2 = 2,5, abgerundet = 2
das ist richtig105143.5000000000 abgerundet auf 43...
(46-41)/2 = 2,5, abgerundet = 2
Das ist richtig,
aber mit verschiedenen Spreads (2,3,4,5,6,7) ist die Abrundung nach unten unterschiedlich und manchmal nicht ganz genau.