Der Martin: JS rechnet falsch!?!

Beitrag lesen

Hallo Alexander,

was du hier erlebst, ist ein ganz "normales" Rundungsproblem.
Fließkommazahlen werden rechnerintern - wie alles andere auch - in binärer Darstellung gespeichert und nicht in dezimaler Form, wie wir sie sonst sehen. Zum Beispiel:
 0.2 = 0 * 1/2
     + 0 * 1/4
     + 1 * 1/8
     + 1 * 1/16
     + 0 * 1/32
     + 0 * 1/64
     + 1 * 1/128
    usw.
Als Binärzahl also  0.0011001...

Schon bei siesem Beispiel zeichnet sich ab, dass eine exakte Umrechnung eventuell nicht möglich ist. Es wird ein periodisch-unendlicher Bruch herauskommen, genauso wie sich der Zahlenwert 1/3 im Dezimalsystem nicht exakt darstellen lässt.

Normalerweise ist der Fehler so klein, dass er nicht auffällt, weil die Zahlen nochmal gerundet werden, bevor sie z.B. angezeigt werden. Führt man aber mit solchen "fehlerbehafteten" Werten eine längere Rechnung durch, können sich die Fehler aufsummieren, so dass es dann so solchen phantomartigen nachkommastellen kommt, wie du sie in deinem Posting beschrieben hast.

Ist das soweit verständlich?

Gruß,

Martin