整数转换

问题描述 投票:0回答:1

如何将 Int 623527832412487691 转换为 Int 623527832412487691n 而不改变数字值

我不希望 Int 623527832412487691 转换为 Int 623527832412487700,因为显然 JavaScript 会进行一些到 BigInt 的转换

我有

let string = 623527832412487691

console.log(string)

打印出623527832412487700

javascript integer numbers biginteger
1个回答
0
投票

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);
© www.soinside.com 2019 - 2024. All rights reserved.