Eine toFixed()-Seltsamkeit
yusuf
- javascript
Wenn ich nach einigen Berechnungen die Nachkommastellen zur Ausgabe verkürzen will:
Zahl = Zahl.toFixed(6);
dann passiert mit einzelnen Zahlen eine komische Sache. So sieht z.B. eine Ausgabe aus:
0.997489
0.993739
0.985558
0.969197
0.9392780000000001
0.889413
0.813943
0.7106680000000001
Es is mir nicht gelungen, den Fehler zu reproduzieren, indem ich explizit irgendwelche Zahlen mit der Methode toFixed() bearbeite.
Nur wenn Zahlen in einer Variablen als Ergebnis mathematischer Operationen gespeichert werden, kommt dieses Phänomen vor.
Woran liegt das?
hi,
Nur wenn Zahlen in einer Variablen als Ergebnis mathematischer Operationen gespeichert werden, kommt dieses Phänomen vor.
Woran liegt das?
</archiv/2007/5/t151537/>
gruß,
wahsaga
</archiv/2007/5/t151537/>
gruß,
wahsaga
Es geht nicht um die Rechenungenauigkeit.
Ich wusste schon früher, dass man mit Math.round(Zahl*1000000)/1000000 solche Fehler bekommt. Aber vor kurzem habe ich erfahren, dass die Methode toFixed() zur Verfügung steht. Das heißt, bei toFixed(6) darf nicht mehr als 6 Nachkommastellen bleiben.
Warum funktioniert das nicht einwandfrei?
Ich muss mich entschuldigen.
Die Methode toFixed() funktioniert einwandfrei.
Ich hatte einfach nicht die richtigen Variablen (also falsche Daten) für die Ausgabe benutzt.