JavaScript整数溢出解决方案



我需要在JS中执行大数算术运算,在这种特殊情况下是:

(1827116622 / 6) * 251772294

预期结果是76669557221078478,但由于整数溢出,我得到了76669557221078460。

环境不允许包含任何库。有没有解决方法来处理这样的计算?


为什么我这样做:我试图找到这些数字的最小公乘子使用以下公式:

LCM(𝑎,𝑏)·GCD(𝑎,𝑏)=𝑎·𝑏其中LCM为最小公数,GCD为最大公数。

我的计算是( a / gcd ) * b

JavaScript中的数字由64位双精度表示,它给你53位整数部分,如果你超过53位,你的数字"变成双精度",所以你得到四舍五入。

如果你想处理大于53位的整数,你需要一个自定义的解决方案,就像在注释中写的那样。

相关内容

最新更新