JSで扱える数値の範囲は?
JavaScript では、数値はすべて 64 ビット倍精度浮動小数点数のフォーマットである IEEE 754 (すなわち、±2^-1022 と ±2^+1023 の間、もしくはおよそ ±10^-308 と ±10^+308 の間の数値、53 ビットの精度による) にしたがって実装されています。
JavaScriptの数値の範囲について
JavaScriptの数値は、IEEE 754 規格に従って64ビット倍精度浮動小数点数として表現されています。これにより、以下の範囲の数値を扱うことができます:
数値の下限 | ±2^-1022 もしくは ±10^-308 |
---|---|
数値の上限 | ±2^+1023 もしくは ±10^+308 |
精度 | 53ビット |
具体的な事例
JavaScriptでは、数値型(Number)は、以下のように定義されています:
<code> let minValue = Number.MIN_VALUE; let maxValue = Number.MAX_VALUE; console.log("Minimum Value: " + minValue); // 最小値をコンソールに表示 console.log("Maximum Value: " + maxValue); // 最大値をコンソールに表示 </code>
このコードを実行すると、JavaScriptで扱える最小値と最大値をコンソールに表示します。それぞれの値は次の通りです:
- 最小値 (Number.MIN_VALUE): 約 5e-324
- 最大値 (Number.MAX_VALUE): 約 1.7976931348623157e+308
数値の精度について
Number型は53ビットの精度を持つので、非常に大きな数値または非常に細かい少数を扱うことが可能です。ただし、これ以上の桁数を持つ数値を計算すると精度が失われることがあります。
<code> let precisionTest = 0.1 + 0.2; console.log(precisionTest); // 結果は0.30000000000000004となる </code>
上記の例では、単純な加算で精度の問題が生じています。これは、浮動小数点数の特性によるもので、計算結果には注意が必要です。
JavaScript内で安全な整数範囲
JavaScriptで安全に扱える整数範囲は、-253から253までです。この範囲を超える整数は、精度が保証されない可能性があります。”Safe integers”範囲内での計算を推奨します。
<code> let safeMin = Number.MIN_SAFE_INTEGER; let safeMax = Number.MAX_SAFE_INTEGER; console.log("Minimum Safe Integer: " + safeMin); // 安全な最小整数 console.log("Maximum Safe Integer: " + safeMax); // 安全な最大整数 </code>
- 安全な最小整数 (Number.MIN_SAFE_INTEGER): -9007199254740991
- 安全な最大整数 (Number.MAX_SAFE_INTEGER): 9007199254740991
このコードは、JavaScript で安全に扱える範囲の整数を示します。
JavaScriptで扱える数値に関するQA
-
Q: JavaScriptで小数点下第18位の数値を扱うことは可能ですか?
A: はい、可能ですが、IEEE 754の制限により計算の精度に欠ける場合があります。 -
Q: JavaScriptの整数の限界は何ですか?
A: 安全に扱える範囲は -9007199254740991 から 9007199254740991 までです。 -
Q: Number.MAX_VALUEを超える数値を扱うとどうなりますか?
A: Number.MAX_VALUEを超える数値は無限大 (Infinity) として扱われます。
その他の参考記事:javascript 数字 チェック