我需要在JS中使用大数来执行算术运算,在这种情况下,它是:
(1827116622 / 6) * 251772294
预期的结果是76669557221078478,但由于整数溢出,我得到了76669557221078460。
环境不允许包含任何库。有办法处理这样的计算吗?
我这样做的原因:我试图用以下公式为这些数字找出最不常见的乘数:
LCM(,)·GCD (,)=·其中LCM是最小公共乘子,GCD是最大公因子。
我的计算是( a / gcd ) * b
。
发布于 2016-08-24 23:48:14
JavaScript中的数字用64位的双数表示,这给了你53位的整数部分,如果你超过53位,你的数字就会“变成双倍”,所以你会得到四舍五入。
如果要处理大于53位的整数,则需要一个自定义解决方案,就像在注释中写入的其他解决方案一样。
https://stackoverflow.com/questions/39137238
复制相似问题