数值在内存是由二进制存储的,某些值在转换成二进制的时候会出现无限循环,由于位数限制,无限循环的值就会采用“四舍五入法”截取,成为一个计算机内部很接近的数字,出现了误差。例如0.1在转换成二进制时会出现无限循环。
0.1 + 0.2 //0.30000000000000004
解决办法:在操作前放大一定的倍数,然后再除以相同的倍数
(0.1 * 100 + 0.2 * 100) / 100 //0.3