前端计算数字精度丢失问题解决方法记录 | 京东云技术团队

原文约1700字,阅读约需4分钟。发表于:

存储二进制时小数点的偏移量最大为52位,最多可表示的十进制为9007199254740992,对应科学计数尾数是 9.007199254740992,这也是 JavaScript 最多能表示的精度。对于double型数据(双精度浮点数),其长度是8个字节(大小),右边52位用来表示小数点后面的数字,中间11位表示e(exponent)小数点移动的位数,左边一位用来表示正负。浮点型简单来说就是表示带有小数的数据,而恰恰小数点可以在相应的二进制的不同位置浮动,可能是因为这样就被定义成浮点型了。

本文介绍了JavaScript中浮点型计算的精度问题及两种解决方案:转为浮点型计算后再转为Number类型和使用number-precision库。

相关推荐 去reddit讨论