2009-07-06 7 views
8

ウェブアプリケーションでは、最大64ビットの数値を処理できるようにしたいと考えています。 テスト中に、私はJavaScript(またはブラウザ全体)が17桁の数字を扱うように見えることがわかりました。 64ビットの数字は最大20桁ですが、JavaScriptが数字を処理した後、最下位3桁は丸められ、0に設定されます.... これはどこから来ていますか? さらに重要なことは、どのように考えていますか?Firefox/IE7で17桁を超える数値を処理するにはどうすればよいですか?

答えて

5

に達している場合は、文字列として扱う必要があると考え、すべての数字は、あなただけの精度の約16桁を有することを意味するIEEE double precision浮動小数点数、です。 64ビットの残りは指数のために予約されている。 Fabienが指摘しているように、すべての64ビットが必要な場合は、精度を高めるためにいくつかのトリックを行う必要があります。

5

私はあなたがJavaScriptでJavascriptの制限(see here

0

あなたは2つ以上の数字に(おそらくクラス内で)分割しようとすることができますが、いくつかの算術ヘルパー関数が必要です。

乾杯

2

他の人が注意したように、JSはダブルスを実装して、あなたは大きな数字を処理するために他の場所で見てする必要があります。 BigIntは整数のための任意精度の計算のためのライブラリです。