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
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.
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.
Integer: 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.
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.
Nun, wenn Sie glauben wollen, dass ich jemanden in die Irre führe, dann glauben Sie mir. Ich habe hier schon alle möglichen Leute gesehen, Ihre "prinzipientreue" Haltung wird mich nicht überraschen.
pavlick_: 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"?
Integer: Lesen Sie die Lehrbücher und Unterlagen laut vor oder was? Oder lesen Sie das Wörterbuch laut vor, etwa das Wort "ungefähr"?
Es ist klar, wir haben nichts zu besprechen. Und Sie sollten sich besser aus Gesprächen heraushalten, wenn Sie nicht für Ihre Worte verantwortlich sind.
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"?