节点 BigInt 函数显示 2 个不同数字相同

Node BigInt function shows the same for 2 different numbers

我正在尝试使用 nodejs 和 BigInt 函数非常准确地计算大数。但是 BigInt 函数 returns 对于 2 个不同的数字是相同的:

输入> BigInt(1320**2+25000000000000**2)
输出> 624999999999999973944983552n

输入> BigInt(25000000000000**2)
输出> 624999999999999973944983552n

您正在尝试将常规数字传递给 BigInt() 构造函数,而这些常规数字在到达 BigInt 构造函数之前就受到常规数字的限制。您需要传递字符串,或者如果您想对它们进行数学运算,那么您需要先将数值显式声明为 BigInt 值,然后再对它们进行数学运算。

例如,您可以这样做:

console.log(1320n ** 2n + 25000000000000n ** 2n)

console.log(25000000000000n ** 2n)

哪个会给你:

625000000000000000001742400n
625000000000000000000000000n