[英]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.