一. 为什么0.1+0.2!=0.3
??
主要是因为:JavaScript在数字运算中的精度确实问题!
![](https://img.haomeiwen.com/i12326595/50ce83139d05c9d9.png)
在计算机中的存储和运算中,数字都是以多位二进制的方法进行存储的。像0.1
和0.2
这样的数值用二进制表示是无法整除的,0.1
最后计算下来是0.000110011....
,由于存储空间有限,计算机舍弃了后面的数值,得到的是一个近似值。
最后,两个近似值相加,得到的结果也是近似值0.30000000000000004
,而这个近似值对于JavaScript来说不够近似于0.3,就会出现0.1+0.2!=0.3
的现象。
![](https://img.haomeiwen.com/i12326595/da22305a410145c1.png)
解决小数计算时的精度问题,常用的方法是:将浮点数转化成整数进行计算,因为整数可以精确表示。
网友评论