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
Mathematik. Klasse 6. Lehrbuch. Nikolsky S.M., Potapov M.K. Moskau: 2012. - 256 с
Rundung.
Dieses Thema hat sich zu einem wahren Hitzkopf entwickelt. MT4 scheint mit der Rundung korrekt zu arbeiten.
Ich wollte, dassNormalizeDouble(0.055,2) die Zahl"0.055" nicht auf "0.06" rundet, sondern sie auf "0.05" trimmt.
Ich habe Schwierigkeiten, diese MKL-Funktionen zu verstehen. Ich verstehe nicht wirklich, warum "1.0015223567" mit der Funktion NormalizeDouble gerundet werden sollte, wenn alles, was Sie wollen, ist, die BORROWN Zahl an die richtige Stelle zu bringen.
Das heißt, NormalizeDouble(1.001526789, 5) würde "1.00152" ergeben. Er muss nicht auf "1,00153" gerundet werden. Dafür muss es die Funktion RoundDouble geben =)
Ist das möglich? Oder ist es notwendig, ständig zu runden und die falschen Zahlen zu erhalten?
Entscheiden Sie sich lieber gleich. Das ist Rundung:
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Rundung von Zahlen in MT4 über NormalizeDouble
Roman Starinskij, 2016.01.21 10:03
Hallo. Können Sie mir sagen, wo das Problem liegt?
Warum rundet die Funktion NormalizeDouble(0.055,2) die Zahl "0.055" auf "0.06"?
Es handelt sich nicht um eine Rundungsfunktion für Brüche.
Das ist nicht der Fall:
Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien
Rundung von Zahlen in MT4 über NormalizeDouble
Roman Starinskij, 2016.01.25 14:30
Dieses Thema hat sich zu einem wahren Hitzkopf entwickelt. MT4 scheint mit der Rundung korrekt zu arbeiten.
Ich meinteNormalizeDouble(0.055,2) nicht, um die Zahl"0.055" auf "0.06" zu runden, sondern um sie auf "0.05" zu trimmen.
Ich habe Schwierigkeiten, diese MKL-Funktionen zu verstehen. Ich verstehe nicht wirklich, warum "1.0015223567" mit der Funktion NormalizeDouble gerundet werden sollte, wenn alles, was Sie wollen, ist, die DIREKTE Zahl an die richtige Stelle zu bringen.
Das heißt, NormalizeDouble(1.001526789, 5) würde "1.00152" ergeben. Er muss nicht auf "1,00153" gerundet werden. Dafür muss es die Funktion RoundDouble geben =)
Ist das möglich? Oder ist es notwendig, ständig zu runden und Zahlen zu erhalten, die man nicht haben will?
Und um des Experimentierens willen:
Dieses Thema hat sich zu einem wahren Hitzkopf entwickelt. MT4 scheint mit der Rundung korrekt zu arbeiten.
Ich wollte, dassNormalizeDouble(0.055,2) die Zahl"0.055" nicht auf "0.06" rundet, sondern sie auf "0.05" trimmt.
Ich habe Schwierigkeiten, diese MKL-Funktionen zu verstehen. Ich verstehe nicht wirklich, warum "1.0015223567" Preise mit der Funktion NormalizeDouble gerundet werden sollten, wenn alles, was Sie wollen, ist, die DIREKTE Zahl auf die richtige Stelle zu bringen.
Das heißt, NormalizeDouble(1.001526789, 5) würde "1.00152" ergeben. Er muss nicht auf "1,00153" gerundet werden. Dafür muss es die Funktion RoundDouble geben =)
Ist das möglich? Oder müssen Sie ständig runden und erhalten Zahlen, die Sie nicht wollen?
Wenn Sie beschneiden müssen, dann beschneiden Sie; wenn Sie abrunden müssen, dann runden Sie ab. Die Funktion NormalkizeDouble() rundet, und das ist das, was Sie am häufigsten brauchen.
Warum denken Sie, dass RoundDouble() anstelle von NormalizeDouble() verwendet werden sollte? Haben Sie diese Welt erschaffen? Ist es in Ordnung, dass eine Kugel rollt und ein Quadrat vier Ecken hat?
Dieses Thema hat sich zu einem wahren Hitzkopf entwickelt.
Das liegt daran, dass der Autor die Sprachdokumentation nicht liest und nicht auf das hört, was ihm gesagt wird.
Das folgende Verhalten beim Teilen und Runden von Brüchen ist ein wenig unklar.
Es gibt 2 Gleichungen:
0.06-0.02 = 0.03999999999999999
0.06-0.024 = 0.036
Die Verwendung der empfohlenen Funktion NormalizeDouble führt zu diesen Ergebnissen:
0.03999999999999999 = 0.04
0.036 = 0.04
Im ersten Beispiel brauchen wir wirklich den Wert 0,04, aber im zweiten Beispiel brauchen wir 0,03 (so funktioniert ein normaler Taschenrechner).
NormalizeDouble sollte verwendet werden, weil Brüche zurückgegeben werden, die nicht vollständig sind, aber im zweiten Fall gibt die Funktion falsche Werte zurück, und man kann sie auch nicht für das erste Beispiel nicht verwenden.
Das folgende Verhalten beim Teilen und Runden von Brüchen ist ein wenig unklar.
Es gibt zwei Gleichungen:
0.06-0.02 = 0.03999999999999999
0.06-0.024 = 0.036
Die Verwendung der empfohlenen Funktion NormalizeDouble führt zu diesen Ergebnissen:
0.03999999999999999 = 0.04
0.036 = 0.04
Im ersten Beispiel brauchen wir wirklich den Wert 0,04, aber im zweiten Beispiel brauchen wir 0,03 (so funktioniert ein normaler Taschenrechner).
NormalizeDouble sollte verwendet werden, weil Brüche zurückgegeben werden, die nicht vollständig sind, aber im zweiten Fall gibt die Funktion falsche Werte zurück, und man kann sie auch nicht für das erste Beispiel nicht verwenden.
Ihr normaler Taschenrechner rechnet nicht richtig, das sollte er aber:
Alles nur, weil der Themenstarter die Sprachdokumentation nicht liest und nicht auf das hört, was ihm gesagt wird.
wenn N+1 Ziffer < 5, dann wird die N-te Ziffer beibehalten und N+1 und alle folgenden Ziffern werden auf Null gesetzt;
wenn N+1 Ziffer ≥ 5 ist, wird die N-te Ziffer um eins erhöht und N+1 und alle folgenden Ziffern werden auf Null gesetzt;
Tut mir leid, aber ich verstehe immer noch nicht, warum die Rundung durch '2' nicht sofort = 0,06000000 ergibt.
v1 = 0,06000000, v2 = 0,06000000
v1 = 0,06000000, v2 = 0,05000000
---
Es tut mir leid, aber ich verstehe immer noch nicht, warum die Rundung durch '2' es nicht möglich macht, = 0,06000000 zu erhalten.
Es tut mir leid, aber ich verstehe immer noch nicht, warum die Rundung durch '2' es unmöglich macht, = 0,06000000 zu erhalten.
Wenn nur eine Ziffer normalisiert wird, ist es einfach: 0, 1, 2, 3, 4 -> 0, und 5, 6, 7, 8, 9 -> 1.
Bei der Normalisierung von zwei Ziffern werden zweistellige Zahlen berücksichtigt: 0 - 49 -> 0 und 50 - 99 -> 1. Wenn die Zahl 1,49 auf ganze Zahlen gerundet werden muss, müssen wir dann wirklich 2 bekommen, was 51 Hundertstel im Vergleich zu den verfügbaren 49 Hundertsteln Abstand zu 1 ist?
Dasselbe gilt für dreistellige, vierstellige usw.