我有一個問題,如果我輸入9十六次,並使用會計js格式化它,甚至Math.round(9999999999999999)
它變成10000000000000000
。我如何解決這個問題。如何解決在JavaScript中的整數問題
引用會計js或者幫助我解決一些與math.random
有關的問題。
http://openexchangerates.github.io/accounting.js/
我有一個問題,如果我輸入9十六次,並使用會計js格式化它,甚至Math.round(9999999999999999)
它變成10000000000000000
。我如何解決這個問題。如何解決在JavaScript中的整數問題
引用會計js或者幫助我解決一些與math.random
有關的問題。
http://openexchangerates.github.io/accounting.js/
浮點不能準確地表示所有的數字。只要您的號碼高於9,007,199,254,740,991
(Number.MAX_SAFE_INTEGER),您就會以整數形式顯示此信息。
超出Number.MAX_SAFE_INTEGER + 1
(9007199254740992),IEEE-754
浮點格式不能再代表每個連續的整數,因爲您不再有1s位;最低位現在代表2
的倍數。最終,如果我們繼續前進,我們會失去那一點,只能以4
的倍數工作。等等。
您的值遠高於該閾值,因此它們會四捨五入到最接近的可表示值。
如何在JavaScript中解決這個問題,因爲我有一個需要將它存儲爲9十六次相同 – user7386493
如何使用百萬次大的值並調整顯示?不過請注意浮點數的最大值。 – Raptor
事情是我利用會計js格式化財務方法模糊事件和unformatMoney在keydown事件當時,當我通過9999999999999999值unformatMethod,它變成10000000000000000.所以我需要解決這個問題 – user7386493
我建議你熟悉'MAX_SAFE_INTEGER' [這裏]的MDN文檔(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)。我認爲這與長度整數的一些限制有關。 –
您可能想要閱讀[this](https://medium.com/the-node-js-collection/javascripts-number-type-8d59199db1b6) –
您是否以字符串的形式獲取值?預期的結果是什麼?另請參見[如何將1添加到在JavaScript中表示爲一個字符串的大整數?](http://stackoverflow.com/questions/43614407/how-do-i-add-1-to-a-big-integer - 表示爲一個字符串在JavaScript /) – guest271314