我遇到了一个问题,如果我输入9次,并使用会计js甚至Math.round(9999999999999999)
进行格式化,则会成为10000000000000000
。我该如何解决这个问题。
参考会计js或帮助我解决math.random
的问题。
答案 0 :(得分:3)
浮点数无法准确表示所有数字。只要数字高于9,007,199,254,740,991
(Number.MAX_SAFE_INTEGER),您就可以用整数表示。
超越Number.MAX_SAFE_INTEGER + 1
(9007199254740992),IEEE-754
浮点格式不能再代表每个连续的整数,因为你不再有1位;最低位现在表示2
的倍数。最后,如果我们继续前进,我们会失去这一点,只能以4
的倍数工作。等等。
您的值远高于该阈值,因此它们会四舍五入到最接近的可表示值。