Antje Hofmann: Wer ist hier blöd? Rechenfehler bei normaler Addition?

Beitrag lesen

Hallo Frank

Kann ich nicht rechnen oder hat JavaScript ein Problem?

Weder noch. Hier handelt sich um ein grundsätzliches Problem.

Du verwendest und rechnest mit Dezimalzahlen. Intern rechnet ein Computer mit Dualzahlen. Der Rundungsfehler entsteht auf Grund der internen Umwandlung.

Mit alert((0.7).toString(2)) oder alert((0.65).toString(2)) kannst du sehr schnell die Ursache nachvollziehen.

Wenn ich nachrechne, kommt 16.55 raus. Kann man sich nicht mal mehr auf die Rechenknechte verlassen?

Doch kannst du :-). JavaScript korrigiert im Gegensatz zu deinem Taschenrechner nicht den Rundungsfehler. Das mußt du schon selbst erledigen.

Viele Grüße

Antje