js对金额浮点数运算精度的处理方案

浮点数产生的原因

浮点数转二进制,会出现无限循环数,计算机又对无限循环小数进行舍入处理

js弱语言的解决方案

方法一:

  指定要保留的小数位数(0.1+0.2).toFixed(1) = 0.3;这个方法toFixed是进行四舍五入的也不是很精准,对于计算金额这种严谨的问题,不推荐使用,而且不通浏览器对toFixed的计算结果也存在差异。

方法二:(推荐)

  把需要计算的数字升级(乘以10的n次幂)成计算机能够精确识别的整数,等计算完毕再降级(除以10的n次幂),这是大部分编程语言处理精度差异的通用方法。

详解:https://www.cnblogs.com/xinggood/p/6639022.html

猜你喜欢

转载自www.cnblogs.com/soul-wonder/p/9104201.html