經常做用js數據運算的同學應該了解,在js中,0.1+0.2不會等於0.3,而是等於:
我一開始發現這個bug的時候也覺得很奇怪,那怎么去解決這個bug,讓0.1+0.2 最后能得到0.3呢?
方法一
最簡單的就是先把0.1和0.2換成別的數字(因為在js中只有這兩個數相加有bug,例如:1.1+1.2不會有問題),所以先讓0.1和0.2分別乘以10,求和之后再除以10 ,則不會有問題:
(0.1*10+0.2*10)/10 ===0.3
方法二
可能很多小伙伴都忘記了js的Number對象有一個保留小數位數的方法:toFixed();傳入一個需要保留的位數就OK:
parseFloat((0.1+0.2).toFixed(10)) ===0.3
因為toFixed方法返回的是一個字符串,所以別忘了把字符串轉回浮點數。