簡體   English   中英

JavaScript:javascript 中兩個數字的和是多少?

[英]JavaScript: What is the sum of two numbers in javascript?

卡在一個問題上

有誰知道為什么會得到這樣的結果?

 let x = 4153000000000000000 + 99 console.log(x) // 4153000000000000000 let y = 4153000000000000000 + 990 console.log(y) // 4153000000000001000 let z = 4153000000000000000 + 9900 console.log(z) // 4153000000000009700

所以你的問題是你使用的數字大於 Integer 的最大容量,即 9007199254740991。因此任何大於 9007199254740991 的東西都會導致異常行為。

使用類似的東西:

 let x = BigInt("4153000000000000000") let y = BigInt("1235") let z = x + y; document.write(z); console.log(z)

您的操作結果超出了 JavaScript 數字類型可以安全表示的范圍:

 console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991

如果要處理更大的數字,可以使用內置的BigInt類型:

 const z = 4153000000000000000n + 9900n; console.log(`Result: ${z}`); // 4153000000000009900

這是因為IEEE。 2^53 以上的數字需要用 big Int 來完成。

最安全的最大數量是

let a = Number.MAX_SAFE_INTEGER;
//console.log(9007199254740991);

最小數量是

 let b = Number.MIN_SAFE_INTEGER;
 //console.log(-9007199254740991);

為了解決這個問題,我們使用 BigInt;

let sum = 4153000000000000000n + 99n;
console.log(sum); // 4153000000000000099n

您可以點擊這里了解更多詳情。 // MDN

更多參考這里//Stackoverflow

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM