精度丢失的原因
js小数进行数值运算时出现精度丢失问题
JavaScript 的number类型在进行运算时都先将十进制转二进制,此时,小数点后面的数字转二进制时会出现无限循环的问题。
为了避免这一个情况,要舍0进1,此时就会导致精度丢失问题
1、精度缺失
例如:0.1 + 0.2
0.1 也就是0.0001100110011001100110011001100110011001100110011001101
0.2 也就是0.001100110011001100110011001100110011001100110011001101
即:
0.00011001100110011001100110011001100110011001100110011010 +
0.0011001100110011001100110011001100110011001100110011010 =
0.0100110011001100110011001100110011001100110011001100111
0.1+0.2 = 0.30000000000000004
结果0.0100110011001100110011001100110011001100110011001100111
再转换成十进制就是0.30000000000000004。
let num = 0.1 + 0.2
// 0.30000000000004
let num = 0.1*0.2
// 0.020000000000000004