Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 241
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 wollen nicht verstehen.
Vielleicht würde ich das, wenn ich den Hintergrund der Situation kennen würde. Aber so, wie es aussieht, ist es richtig.
Solange die beiden Beträge gleich sind, ist jeder von ihnen ein gültiges Minimum. Betrachten wir MathMin(1, 1), so macht es keinen Unterschied, ob die Funktion den ersten (1) oder den zweiten (1) Wert liefert.
DieRückgabe von 0,0 unterscheidet sich also nicht von -0,0.
Edit: Übrigens sind die beiden hervorgehobenen Ausdrücke NICHT identisch.Ich denke, ich stimme mit meinem Kollegen amrali überein. Ich würde auch hinzufügen, dass es eine native Funktion MathMin() gibt. Sie denkt auch, dass Nullen mit unterschiedlichen Vorzeichen gleich sind. Soweit ich weiß, ist ihr Algorithmus recht einfach. Ich habe ihn in meiner Funktion CustomMathMin() dupliziert.
Wir haben ihn im Protokoll:
Es ist leicht zu erkennen, dass der Algorithmus von zwei gleichen Zahlen die zweite Zahl als Minimum annimmt...
Sie wollen nicht verstehen.
Es ist nichts Besonderes. Einfach nur -0,0==0,0.
nichts Besonderes. Einfach -0.0==0.0
Ich kenne die Frage sehr gut, deshalb habe ich beide Varianten von MathMin geschrieben, um zu zeigen, dass mathematisch identische Funktionen in Programmiersprachen unterschiedliche Ergebnisse liefern.
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.
Was ist also ungewöhnlich?
Die Tatsache, dass bei den Zahlen 0.0 und -0.0 nicht alle 64 Bits gleich sind, ist offensichtlich:
aber trotzdem 0.0 == -0.0
Die Zeichen < und <= scheinen unterschiedlich zu sein.....
zustimmen
Was ist also ungewöhnlich?
Die Tatsache, dass bei den Zahlen 0.0 und -0.0 nicht alle 64 Bits gleich sind, ist offensichtlich:
Es wird erwartet, dass MathMin() deterministisch ist. Also immer das gleiche Ergebnis liefert, 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.
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....
Und das ist der Fall. Wenn 2 Zahlen gleich sind, wird die zweite Zahl zurückgegeben. Ich habe oben mit einem Beispiel gezeigt...
und daran ist nichts auszusetzen.
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.
Du hast meinen Standpunkt richtig verstanden. Man kann auf das schwer zu findende Problem stoßen, dass man in großem Code unterschiedliche Ergebnisse erhält. Deshalb habe ich die Community in diesem Thread informiert.