JS数字精度丢失

在项目中,处理关于价格字段时,发现有精度丢失问题。

eg  var price = 734000; //价格

  var money = price * 0.7 = 513799.99999999994 //贷款金额

解决方案:

对于整数,前端出现问题的几率可能比较低,毕竟很少有业务需要需要用到超大整数,只要运算结果不超过 Math.pow(2, 53) 就不会丢失精度。

对于小数,前端出现问题的几率还是很多的,尤其在一些电商网站涉及到金额等数据。解决方式:把小数放到位整数(乘倍数),再缩小回原来倍数(除倍数)

 734000 * (0.7 *10)/ 10 = 513800;

  

原文地址:https://www.cnblogs.com/Super-scarlett/p/8657327.html