如何解决JavaScript中的整数问题

如何解决JavaScript中的整数问题,javascript,ecmascript-5,accounting,Javascript,Ecmascript 5,Accounting,我遇到了一个问题,如果我输入了16次9,并使用accounting js或甚至Math.round(9999999999999999)对其进行格式化,它将变成100000000000000。我如何解决这个问题 参考accounting js或帮助我解决math.random的一些问题 浮点不能精确地表示所有的数字。当您的数字高于9007199254740991(Number.MAX\u SAFE\u INTEGER)时,您将以整数的形式看到这一点 除了Number.MAX_SAFE_INTEGE

我遇到了一个问题,如果我输入了16次9,并使用accounting js或甚至
Math.round(9999999999999999)
对其进行格式化,它将变成
100000000000000
。我如何解决这个问题

参考accounting js或帮助我解决
math.random的一些问题


浮点不能精确地表示所有的数字。当您的数字高于
9007199254740991
(Number.MAX\u SAFE\u INTEGER)时,您将以整数的形式看到这一点

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


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

浮点不能精确表示所有数字。当您的数字高于
9007199254740991
(Number.MAX\u SAFE\u INTEGER)时,您将以整数的形式看到这一点

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


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

我建议您熟悉MDN文档中关于
MAX\u SAFE\u INTEGER
。我认为这与一些关于长度整数的限制有关。你可能想读一读,你得到的值是字符串吗?预期的结果是什么?如果你能给我举个例子,那就太好了。我无法做到这一点,谢谢。我建议您熟悉有关
MAX\u SAFE\u INTEGER
的MDN文档。我认为这与一些关于长度整数的限制有关。你可能想读一读,你得到的值是字符串吗?预期的结果是什么?如果你能给我举个例子,那就太好了。我无法做到这一点,thanksHow我用JavaScript解决这个问题吗,因为我需要将它存储为与9 16倍相同的大小,如何使用大一百万倍的值并调整显示?不过,要注意浮点数的最大值。问题是,我正在使用accounting js在模糊事件上格式化Money方法,在keydown事件上格式化Money方法。当我将值99999999999999传递给unformatMethod时,它将变为100000000000000。所以我需要解决这个问题,我如何在JavaScript中解决这个问题,因为我需要将它存储为9 16倍的大小,如何使用大一百万倍的值并调整显示?不过,要注意浮点数的最大值。问题是,我正在使用accounting js在模糊事件上格式化Money方法,在keydown事件上格式化Money方法。当我将值99999999999999传递给unformatMethod时,它将变为100000000000000。所以我需要解决这个问题