0

JavaScriptの私はそれがこの特定のケースでは、JSの大きな数字で算術演算を実行する必要がある整数オーバーフローの回避策

(1827116622/6) * 251772294 

期待される結果が76669557221078478ですが、私が原因で、整数オーバーフローの76669557221078460を取得しています。

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


は、なぜ私はそうやっている:

LCM(、)・GCD(、)=・LCMが最も一般的である:私は、次の式を使用して、これらの数値の最小公倍数を見つけようとしています乗算器とGCDは最大公約数です。

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

+3

大きな整数ライブラリを使用します。 Googleの "Javascript big integer" – Barmar

+0

問題があり、ライブラリを含むことができない環境で使用しています。これを明確にするために私の質問を更新しました –

+0

あなたは[任意精度の算術](https://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic)を使用する必要があります。 .js](https://github.com/MikeMcl/big.js/)はあなたの計算に適しています。ライブラリを含めることはできませんし、コードを見て必要なもの(/と*)を取ってください。 – Xotic750

答えて

0

JavaScriptの数値はで表され、53ビットの整数部分を与えるの64ビット倍精度を使用します。53ビットを超えると2倍になり、丸められます。

53ビットより大きい整数で作業する場合は、他のコメントのようにカスタムソリューションが必要です。

関連する問題