2016-05-02 8 views
-4

Dieser Code gibt Folgendes zurück: 0,04999999999999999Warum gibt parseFloat (0.15)% 0.05 0.04999999999999999 zurück?

var number = parseFloat(0.15); 
console.log(number % 0.05); 

Warum? Hier

ist ein zupfen: http://plnkr.co/edit/fYa4ZpvNj3xTvgNHx0pj?p=preview

+1

'parseFloat' analysiert eine Zeichenfolge zu einer Zahl. Was ist der Sinn, es für eine Nummer zu benutzen? – Oriol

+0

Duplikat von http://StackOverflow.com/Questions/1458633/How-To-Deal-With-Floating-PointNumber-Precision-in-Javascript –

+0

In meinem Fall kommt "0.15" von Benutzereingabe, die eine Zeichenfolge und ist Ich weiß nicht, ob der Benutzer tatsächlich eine Nummer oder nur eine zufällige Zeichenfolge eingegeben hat. – Fortuna

Antwort

0

Mathe Gleitpunkt ist eigentlich nur so gut wie die Bitbreite Darstellung. Zum Beispiel ist 0,1 tatsächlich 0,100000010000001.

+0

Die Genauigkeit ist nicht so niedrig. '0.1 <0.100000010000001 === wahr ' – Oriol

Verwandte Themen