Von Der Gleitkomma-Guide :
Warum addieren sich meine Zahlen wie 0,1 + 0,2 nicht zu einer netten Runde von 0,3 und stattdessen bekomme ich ein komisches Ergebnis wie 0.30000000000000004?
Weil Computer intern a Format (binärer Fließkomma) das kann eine Zahl nicht genau darstellen wie 0,1, 0,2 oder 0,3 überhaupt.
Wenn der Code kompiliert ist oder interpretiert, ist dein "0.1" schon auf die nächste Zahl gerundet Format, das in einem kleinen resultiert Rundungsfehler schon vor der Berechnung passiert.
Nicht alle Zahlen können exakt dargestellt werden, auch wenn sie in Dezimalschreibweise einfach dargestellt sind. Dies liegt daran, dass JavaScript IEEE 754 verwendet, um Fließkommawerte darzustellen, und daher Base 2 anstelle von Base 10 verwendet. Dies führt zu Sie subtrahieren nicht wirklich 0.1 (obwohl Ihr Quellcode das sagt), aber ein Wert nahe daran.
Tags und Links javascript floating-point