diff --git a/docs/reference/values-types-variables/number/README.md b/docs/reference/values-types-variables/number/README.md index 171cb480..4db6d73b 100644 --- a/docs/reference/values-types-variables/number/README.md +++ b/docs/reference/values-types-variables/number/README.md @@ -84,7 +84,21 @@ const count: number = 123; ## 数値の範囲 -JavaScriptのnumber型は、IEEE 754の倍精度浮動小数です。64ビットのうち、52ビットが数値の格納に、11ビットが小数の位置に、1ビットが正負符号に使われます。正確に扱える数値は`-(2^53 − 1)`から`2^53 − 1`の間です。整数について言うと、他言語の64ビット整数型の範囲より狭いので注意しましょう。 +JavaScriptのnumber型は、IEEE 754の倍精度浮動小数です。64ビットのうち、52ビットが数値の格納に、11ビットが小数の位置に、1ビットが正負符号に使われます。 + +JavaScriptの`number`型で、すべての整数を正確に区別して扱える範囲は、`-(2^53 − 1)`以上`2^53 − 1`以下です。この範囲を安全な整数の範囲と呼びます。 + +この範囲を超えると、数学上は異なる整数が同じ`number`値として扱われることがあります。 + +```ts twoslash +const a = 2 ** 53; +const b = a + 1; + +console.log(a === b); +// @log: true +``` + +整数について言うと、他言語の64ビット整数型の範囲より狭いので注意しましょう。 ## 特殊な数値