0

JS で多数の算術演算を実行する必要があります。この特定のケースでは、次のようになります。

(1827116622 / 6) * 251772294

期待される結果は 76669557221078478 ですが、整数オーバーフローのために 76669557221078460 が返されます。

この環境では、ライブラリを含めることはできません。このような計算を処理するための回避策はありますか?


その理由: 次の式を使用して、これらの数値の最小公倍数を見つけようとしています。

LCM(, )·GCD(, ) = · ここで、LCM は最小公倍数、GCD は最大公約数です。

私の計算は( a / gcd ) * bです。

4

1 に答える 1

0

JavaScript の数値は64 ビットの doubleで表され、これにより 53 ビットの整数部分が得られます。53 ビットを超えると数値が「double になる」ため、丸めが行われます。

53 ビットを超える整数を扱う場合は、他の人がコメントに書いたようなカスタム ソリューションが必要です。

于 2016-08-25T07:48:14.290 に答える