Skip to main content

小数点精度问题

产生原因

JS中所有数字都是标准的双精度浮点数(double)

JS在进行浮点数运算时, 会先将浮点数转化为二进制, 但是浮点数用二进制表示是无穷的, 二进制数有最大位数限制, 计算时会被截断, 截断后的二进制数字相加再转化为十进制于是产生了误差。

解决方法

使用三方库: bignumber.js/ decimal.js