js小数精度丢失?

原因:

 js中 number类型运算都需要先将十进制转二进制。但小数点后的位数转二进制会出现无 限循环的问题,只能舍0入1,所以会出现小数点丢失问题。

例如:

console.log(0.1 + 0.2) // 0.30000000000000004

解决方法:

1. 使用toFixed()方法,参数为保留几位小数

console.log((0.1+0.2).toFixed(1)); // 0.3

2. 使用toPrecision()方法,参数为保留几位小数

console.log((0.1+0.2).toFixed(1)); // 0.3

3. 可以通过先乘10的倍数,然后再除10的倍数

console.log(33.01 - 5);  // 28.009999999999998

console.log((33.01*100 - 5*100)/100) // 28.01

你可能感兴趣的:(vue.js,前端,javascript)