我需要在JS中执行大数算术运算,在这种特殊情况下是:
(1827116622 / 6) * 251772294
预期结果是76669557221078478,但由于整数溢出,我得到了76669557221078460。
环境不允许包含任何库。有没有解决方法来处理这样的计算?
为什么我这样做:我试图找到这些数字的最小公乘子使用以下公式:
LCM(𝑎,𝑏)·GCD(𝑎,𝑏)=𝑎·𝑏其中LCM为最小公数,GCD为最大公数。
我的计算是( a / gcd ) * b
JavaScript中的数字由64位双精度表示,它给你53位整数部分,如果你超过53位,你的数字"变成双精度",所以你得到四舍五入。
如果你想处理大于53位的整数,你需要一个自定义的解决方案,就像在注释中写的那样。