JavaScript整数溢出解决方法

时间:2016-08-25 05:22:04

标签: javascript integer integer-overflow greatest-common-divisor lcm

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

(1827116622 / 6) * 251772294

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

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

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

LCM(,)·GCD(,)=·其中LCM是最小公倍数,GCD是最大公约数。

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

1 个答案:

答案 0 :(得分:0)

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

如果你使用大于53位的整数,你需要一个像评论中写的其他自定义解决方案。