如何解决Node BigInt 函数对 2 个不同的数字显示相同
我正在尝试使用 nodejs 和 BigInt
函数非常准确地计算大数。但是 BigInt
函数对 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。