js精度丢失问题

数值在内存是由二进制存储的,某些值在转换成二进制的时候会出现无限循环,由于位数限制,无限循环的值就会采用“四舍五入法”截取,成为一个计算机内部很接近的数字,出现了误差。例如0.1在转换成二进制时会出现无限循环。

0.1 + 0.2
//0.30000000000000004

解决办法:在操作前放大一定的倍数,然后再除以相同的倍数

(0.1 * 100 + 0.2 * 100) / 100
//0.3
原文地址:https://www.cnblogs.com/lianglanlan/p/14191054.html