
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
Was mich stört, ist, dass ich, wenn ich eine Bruchzahl berechne, sie normalisiere, sie in eine Variable schreibe, sie dann lese und wieder normalisiere, Schwänze erhalte
z.B..
basis[0]=NormalizeDouble(sum_A,2);
GlobalVariableSet("Equity-"+portfolio_id,basis[0]);
...
current=NormalizeDouble(GlobalVariableGet("Equity-"+portfolio_id),2);
text = "Positions synchronized at " + current + " for portfolio: " + portfolio_name;
if(!automatic) MessageBox(text,""); else Print(text);
Jetzt habe ich es geändert in
text = "Positions synchronized at " + DoubleToStr(current,2) + " for portfolio: " + portfolio_name;
if(!automatic) MessageBox(text,""); else Print(text);
und es scheint keine Schwänze zu geben, whew, whew, whew...
Ich habe bereits geschrieben, ich wiederhole es noch einmal - einige Zahlen gibt es nicht im Binärformat. Es gibt keine 0,1, keine 0,3 und viele andere. Egal wie oft Sie double val = NormalizeDouble(0.1434, 1) schreiben, Sie werden niemals 0.1 erhalten, weil es diese Zahl nicht gibt.
Zahlen werden zum Beispiel wie folgt dargestellt:
0.1 = 0.100000000000000000001
0.2 = 0.20000000000000001
0.3 = 0.29999999999999999999999
0.4 = 0.4000000000000000002
0.6 = 0.59999999999999998
aber
0,125 = 0,125
0,25 = 0,25
0,5 = 0,5
Wenn dies sehr störend ist, müssen Sie entweder runden oder Ihr eigenes Fahrrad schreiben, um Bruchzahlen darzustellen (es kann einige Bibliotheken geben, nicht interessiert), die nicht fpu verwenden.
Und bei der Umwandlung in eine Zeichenkette werden keine Schwänze hinzugefügt, sie sind von Anfang an vorhanden.
Damit ist meine Frage geklärt und wir können das Thema schließen.
Lösung: Sie müssen die Rundung erzwingen, auch nach der Normalisierung
Möglicherweise... aber in Bezug auf das Endergebnis - es gibt Schwänze!
...
Nach der Normalisierung gibt es keine Ausläufer.
Ich glaube, Sie führen den Mann in die Irre. Was meinen Sie damit, dass es nach der Normalisierung keine Schwänze gibt? Es kann keine Schwänze geben, nur in der Zeichenkette, die wir aus einer Zahl erhalten und den Wert gerundet haben (gerundet bereits in der Zeichenkette, nicht in double). Aber nach NormalizeDouble() gibt es Schwänze.
Falsche Lösung. Beim Runden müssen Sie multiplizieren, runden und dividieren. Nach der letzten Division ist die Zahl nicht mehr normalisiert.
Was verstehen Sie unter Normalisierung? Stringo sagte hier, dass der Algorithmus in etwa so aussieht:
Ich glaube, Sie führen den Mann in die Irre. Was meinen Sie damit, dass es nach der Normalisierung keine Schwänze gibt? Es kann keine Schwänze geben, nur in der Zeichenkette, die wir aus einer Zahl erhalten und den Wert gerundet haben (gerundet bereits in der Zeichenkette, nicht in double). Aber nach NormalizeDouble() gibt es Schwänze.
Was verstehen Sie unter Normalisierung? Stringo sagte hier, dass der Algorithmus in etwa so aussieht:
Ich stelle Ihnen eine konkrete Frage und Sie schütten Wasser auf mich. Wie ist es normal, seinen Standpunkt zu erklären und zu argumentieren?
Lesen Sie die Lehrbücher und Unterlagen laut vor oder was? Oder lesen Sie das Wörterbuch laut vor, etwa das Wort "ungefähr"?