如何增加這個數字(您可以在瀏覽器控制臺上嘗試):
36893488147419103000 1
結果是:
36893488147419103000
數字保持不變,沒有變化,這是為什么?以及如何將其增加 1?
uj5u.com熱心網友回復:
對于大整數,您應該使用BigInt(大整數)型別。
注意 1:如果不首先執行顯式轉換,您幾乎總是不能將BigInt數字與s 混合(例如用于數學運算)。Number
注意 2:JSON 當前不支持BigInt值。作為一種解決方法,您可以使用字串(例如 '1n' 作為值,然后在呼叫JSON.parse.
JavaScript 目前只有兩種數字型別:雙精度 IEEE 754 浮點數Number和可用于表示任意大整數的 Big Integers。BigInt您可以使用后綴宣告數字文字n,例如。1n.
IEEE 754 Numbers 可以“僅”準確地表示直到并包括 的整數Number.MAX_SAFE_INTEGER,其值為 2^53 - 1 或 9,007,199,254,740,991 或 ~9 萬億。
來自 MDN:
雙精度浮點格式只有 52 位來表示尾數,因此它只能安全??地表示介于 -(2 53 – 1) 和 2 53 – 1 之間的整數。本文中的“安全”是指能夠準確表示整數并且正確比較它們。例如,
Number.MAX_SAFE_INTEGER 1 === Number.MAX_SAFE_INTEGER 2將評估為真,這在數學上是不正確的。有關Number.isSafeInteger()更多資訊,請參閱。
一種能夠表示任意精確十進制數的“十進制”數字型別正在開發中。
uj5u.com熱心網友回復:
顯然該數字在內部表示為浮點數。當您要添加到該數字的值小于最低有效位的值時,它不會更改該值。唯一的方法是使用具有更高解析度的浮點數,即具有更高數量的有效位。
uj5u.com熱心網友回復:
雙精度浮點格式只有 52 位來表示尾數,因此它只能安全??地表示 -(2 53 – 1) 和 2 53 – 1 之間的整數。請參閱Number.MAX_SAFE_INTEGER。較大的數字可能無法準確表示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/523683.html
