gpt4 book ai didi

javascript - 为什么当数字的长度大于 15 时,Number() 方法会增加数字的值?

转载 作者:行者123 更新时间:2023-12-01 15:51:40 24 4
gpt4 key购买 nike

每当我运行它时,返回的数字都会增加,谁能向我解释一下?

let array = [9, 2, 2, 3, 3, 7, 2, 0, 3, 6, 8, 5, 4, 7, 7, 1]
return Number(array.join(''))
输出:
9223372036854772

最佳答案

数字大于 Number.MAX_SAFE_INTEGER (253-1)。您可能想使用 BigInt 反而。
例子:

let array = [9, 2, 2, 3, 3, 7, 2, 0, 3, 6, 8, 5, 4, 7, 7, 1]
let num = BigInt(array.join(''));
console.log(num.toString());
console.log("Doubled:", (num * 2n).toString());
console.log("Squared:", (num ** 2n).toString());

您可以使用 Number.isSafeInteger 检查值是否精确。

let array = [9, 2, 2, 3, 3, 7, 2, 0, 3, 6, 8, 5, 4, 7, 7, 1]
let num = Number(array.join(''));
console.log("Safe?", Number.isSafeInteger(num));

关于javascript - 为什么当数字的长度大于 15 时,Number() 方法会增加数字的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62524838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com