Mittwoch, den 07. September 2011 um 14:05 Uhr

JavaScript Fließkommazahlen Rundungsfehler

Bewerten Sie diesen Artikel
(0 Bewertungen)

JavaScript benutzt für die Darstellung von Zahlen intern das Binärsystem, so kommt es zu Fehlern bei der Darstellung von Fließkommazahlen.

Bei der Addition von 0.1 und 0.2 bekommen wir so das verfälschte Ergebnis 0.30000000000000004.

Um diesen Fehler zu umgehen können wir zum einen die toFixed() Methode nehmen welche die Fließkommazahlen auf die gewünschte Länge bringt, oder wir Multiplizieren das Ergebnis mit 10 Runden mit Math.round() und Dividieren wieder mit 10, und bekommen so das gewünschte Ergebnis auf eine Nachkommastelle genau.

http://jsfiddle.net/richin/aNCuu/

 

floatNumber = 0.1;

//false computation
for(var i=0;i<2;i=i+0.1){

thisNumber = floatNumber+i

$("#text1").append(thisNumber)
$("#text1").append("<br>")

}


//right computation
for(var i=0;i<2;i=i+0.1){

thisNumber = (floatNumber+i).toFixed(1);

roundNumber =Math.round((floatNumber+i)*10)/10

$(“#text3”).append(roundNumber)
$(“#text3”).append(“<br>”)



$(“#text2”).append(thisNumber)
$(“#text2”).append(“<br>”)

}

Zuletzt geändert am: Mittwoch, den 07. September 2011 um 14:14 Uhr

Leave a comment

Ads