Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 242
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
Sie erwartet, dass die Funktion MathMin() deterministisch ist. Sie soll also immer das gleiche Ergebnis liefern, wenn die beiden Argumente gleich sind. Und nicht ein unterschiedliches Ergebnis, je nachdem, welches Argument das erste oder zweite ist.
fxsaber hat recht, das ist ein Problem.
ahhh..., warum war es dann so verwirrend mit " Mathematisch derselbe Ausdruck (hervorgehoben) " und union
war genug:
aber da 0.0 == -0.0, kann ich mir keine Situation vorstellen, in der das ein Problem sein könnte und überhaupt irgendetwas beeinflussen könnte
eine alte Funktion von Min/Max in MQL - sie funktionieren so, wie die Entwickler denken, d.h. korrekt :-)
es sind die Normen, die falsch sind.
ahhh..., warum war es dann so verwirrend mit " Mathematisch derselbe Ausdruck (hervorgehoben) " und union
war genug:
Aber da 0,0 == -0,0 ist, kann ich mir keine Situation vorstellen, in der dies ein Problem darstellen und überhaupt irgendetwas beeinflussen könnte
Wenn es nicht Null wäre, dann wäre es ein Problem. Und bei Null hat es keine Auswirkungen.
For:
c++ - Was ist der Unterschied zwischen -0 und 0? - Stack Overflow
Alles, was du wissen musst, ist also, dass 0 = -0
Das ist die ganze Funktion, die keine Auswirkungen auf Berechnungen und Logik hat
Da ich die Frage sehr gut verstehe, habe ich beide Versionen von MathMin geschrieben, um zu zeigen, dass mathematisch identische Funktionen in Programmiersprachen unterschiedliche Ergebnisse liefern.
Es scheint ein Fehler zu sein.
In C++ funktioniert es einwandfrei:
in der Konsole:
Long negative zero = 0
Eine Frage an die Entwickler. Ist es normal, dass im Debugging-Fenster die Variable Union nicht expandiert und überhaupt nicht auf einen Klick reagiert?
Die Felder Union.Num1 und Union.Num2 wurden manuell hinzugefügt. Auf diese Weise können Sie wenigstens die Werte sehen...
Funktioniert wie erwartet! Das erste Bit (Bit-Index 0) ist das Vorzeichenbit, das für -0,0 gesetzt ist.
Dies sind auch weitere Sonderfälle im IEEE-754-Format. https://www. wikiwand.com/en/IEEE%20754#Special_values
Es scheint ein Fehler zu sein.
In C++ funktioniert es gut:
in der Konsole:
Es gibt keinen Fehler. In C++ ist es dasselbe.
Sie haben nur einen Fehler bei der Formatierung und dem Typ gemacht
Versuchen Sie dies:
Im gleichen Zusammenhang kann dies die 64-Bit-Darstellung von Doubles https://www.mql5.com/en/code/20822
oder die kürzere Version
Es gibt keinen Fehler. Es ist dasselbe in C++.
hat nur einen Fehler bei der Formatierung und dem Typ gemacht
Versuchen Sie dies:
Ja, ich war in Eile. Vielen Dank für die Wissenschaft ))
Manchmal müssen Sie einen EA schnell in den Tester einfügen. Das können Sie folgendermaßen tun.
Wählen Sie ein Datum in der Zukunft und drücken Sie STRG+F5 in ME.