2016-05-02 44 views
-4

此代碼返回:0.04999999999999999爲什麼parseFloat(0.15)%0.05返回0.04999999999999999?

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

爲什麼?

這裏是一個普拉克:http://plnkr.co/edit/fYa4ZpvNj3xTvgNHx0pj?p=preview

+1

'parseFloat'將一個字符串解析爲一個數字。在數字上使用它有什麼意義? – Oriol

+0

http://stackoverflow.com/questions/1458633/how-to-deal-with-floating-point-number-precision-in-javascript –

+0

的重複在我的情況下,「0.15」來自用戶輸入,它是一個字符串,我不知道用戶是真的輸入了一個數字還是隻是一些隨機字符串。 – Fortuna

回答

0

浮點運算實際上是隻位寬表現一樣好。例如,0.1實際上是0.100000010000001。

+0

精度並不低。 '0.1 <0.100000010000001 === true' – Oriol