1UnitedPower: Einheitenumrechner

Beitrag lesen

Meine Herren!

danke für Deine Hilfe! Das Script funktioniert jetzt. Aber wenn bei Milligramm der Wert vom Nutzer bspw. auf 9 gesetzt wird, springt der Wert bei Gramm auf 0,009000000000000001. Warum ist das so?

Das hat mit JavaScripts interner Repräsentation von Zahlen zu tun, JavaScript rechnet nämlich intern immer mit Floating-Point Arithmetik. Das heißt zum Einen, dass JavaScript manche Zahlenwerte einfach nicht annehmen kann und zum anderen, dass Rechenoperationen nicht völlig exakt laufen.

9 * 000.1 === 0.009000000000000001; // true  
  
9 / 1000 ===  0.009; // true  
  
Number.MAX_VALUE === Number.MAX_VALUE - 1; // true
--
“All right, then, I'll go to hell.” – Huck Finn