如何解决JavaScript中的轮数问题

时间:2017-05-18 07:23:47

标签: javascript ecmascript-5 accounting

我遇到了一个问题,如果我输入9次,并使用会计js甚至Math.round(9999999999999999)进行格式化,则会成为10000000000000000。我该如何解决这个问题。

参考会计js或帮助我解决math.random的问题。

http://openexchangerates.github.io/accounting.js/

1 个答案:

答案 0 :(得分:3)

浮点数无法准确表示所有数字。只要数字高于9,007,199,254,740,991(Number.MAX_SAFE_INTEGER),您就可以用整数表示。

超越Number.MAX_SAFE_INTEGER + 1(9007199254740992),IEEE-754浮点格式不能再代表每个连续的整数,因为你不再有1位;最低位现在表示2的倍数。最后,如果我们继续前进,我们会失去这一点,只能以4的倍数工作。等等。

您的值远高于该阈值,因此它们会四舍五入到最接近的可表示值。