- = 0.1 seltsames Ergebnis [duplizieren]

8

JavaScript-Code:

%Vor%

Ссылка

Ich habe erwartet:

%Vor%

Aber ich habe das:

%Vor%

Könnte jemand erklären, was dort vor sich geht?

    
atlavis 13.04.2011, 14:38
quelle

5 Antworten

7

Sie sehen ein Artefakt der Art und Weise, wie Computer Fließkomma-Arithmetik ausführen. Siehe zum Beispiel Ссылка

    
Jonathan 13.04.2011, 14:40
quelle
6

Dies wird Ihr Problem lösen

Ссылка

%Vor%     
mr_eclair 13.04.2011 14:46
quelle
6

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.

    
Michael Borgwardt 13.04.2011 14:53
quelle
3

Sie haben es mit einer Gleitkommazahl zu tun. Sehen Sie sich die Methoden toFixed und toPrecision an.

    
JamesB41 13.04.2011 14:41
quelle
1

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.

    
Oswald 13.04.2011 14:41
quelle

Tags und Links