如何将 Int 623527832412487691 转换为 Int 623527832412487691n 而不改变数字值
我不希望 Int 623527832412487691 转换为 Int 623527832412487700,因为显然 JavaScript 会进行一些到 BigInt 的转换
我有
let string = 623527832412487691
console.log(string)
打印出623527832412487700
JavaScript 对整数值的精度有限制,因为它使用双精度浮点格式表示数字。您提供的数字超出了 JavaScript 中的最大安全整数 (
Number.MAX_SAFE_INTEGER
),即 9007199254740991。一旦超出此限制,您就开始失去精度。
为了在 JavaScript 中准确处理大整数而不丢失精度,您可以使用 ECMAScript 2020 中引入的 BigInt 数据类型。但是,当直接从文字初始化 BigInt 时,如果数字太大,JavaScript 仍将使用浮点运算.
要处理您的特定情况,您可以使用 BigInt 构造函数将您的数字转换为 BigInt。
let number = 623527832412487691n;
console.log(number);
这里,623527832412487691n 明确表示一个 BigInt,没有任何精度损失。这样,您就不会遇到 JavaScript 将数字转换为浮点表示的问题。
如果数字为字符串,则可以通过执行以下操作将其显式转换为 BigInt:
let string = "623527832412487691";
let bigintNumber = BigInt(string);
console.log(bigintNumber);