基于js运算解决数字精点和浮点的解决
1.一个问题console.log(0.1+0.2===0.3) //这样的结果时false
四舍五入 toFixed()方法
这样出现数据会不正确
还包括round(),floor(),ceil()等都是不会四舍五入,有精度问题
ES6在Number对象上新增一个极小常量Number.EPSILON.它是表示1与大于1的最小浮点数之间的差,它实际上是js能够表示的最小精度,
误差小于这个值,就可以认为已经没有意义了,即不存在误差了。
round可以保证精度正确
let c= 2.4462;c=Math.round((c+Number.EPSILON) * 100) /100;
2.将浮点数化为整数 运算 再对结果做除法。0.1 + 0.2
(1+2)/10
3.浮点数转化字符串,模拟实际运算
4.修复原生toFixed不准确问题
function toDecimal(num){ return Math.round(num + Number.EPSILON);}
但是对于负数有问题
toDecimal(-1.5)//1