回答編集履歴
2
説明の不備があったので詳細に記載
test
CHANGED
@@ -14,15 +14,15 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
簡単に言いますと、JavaScript
|
17
|
+
簡単に言いますと、__JavaScript__は計算結果を丸めるときに、
|
18
18
|
|
19
|
-
最大の値(`Number.MAX_VALUE`)は**2の1024乗-2の971乗**、
|
19
|
+
最大の値(`Number.MAX_VALUE`)は**2の1024乗-2の971乗**、
|
20
20
|
|
21
|
-
無限大(`Infinity`)は**2の1024乗**、
|
21
|
+
無限大(`Infinity`)は**2の1024乗**、
|
22
22
|
|
23
|
-
と
|
23
|
+
であると考えて、近い方に丸めています。
|
24
24
|
|
25
|
-
|
25
|
+
ここで、`Number.MAX_VALUE`と`Infinity`の差は**2の971乗**です。
|
26
26
|
|
27
27
|
`Number.MAX_VALUE`に`1`を足したところで、**2の971乗**の差を埋めるには程遠いので、`Number.MAX_VALUE`に丸められてしまうのです。
|
28
28
|
|
@@ -30,7 +30,7 @@
|
|
30
30
|
|
31
31
|
逆に考えると、`Number.MAX_VALUE`に**2の971乗の半分**を足した数は ちょうど2つの数の半分地点になりますよね。
|
32
32
|
|
33
|
-
**2の971乗の半分**を足したらどうか、実際に試してみます。
|
33
|
+
**2の971乗の半分**を足したらどうなるか、実際に試してみます。
|
34
34
|
|
35
35
|
```lang-javascript
|
36
36
|
|
1
文章を若干修正
test
CHANGED
@@ -28,9 +28,9 @@
|
|
28
28
|
|
29
29
|
|
30
30
|
|
31
|
-
逆に考えると、**2の971乗の半分**はちょうど2つの数の半分地点
|
31
|
+
逆に考えると、`Number.MAX_VALUE`に**2の971乗の半分**を足した数は ちょうど2つの数の半分地点になりますよね。
|
32
32
|
|
33
|
-
試してみます。
|
33
|
+
**2の971乗の半分**を足したらどうか、実際に試してみます。
|
34
34
|
|
35
35
|
```lang-javascript
|
36
36
|
|
@@ -42,11 +42,11 @@
|
|
42
42
|
|
43
43
|
```
|
44
44
|
|
45
|
-
|
45
|
+
切り上げられて`Infinity`になりました。
|
46
46
|
|
47
47
|
|
48
48
|
|
49
|
-
また、**2の971乗の半分**よりちょっと
|
49
|
+
また、足す数を**2の971乗の半分**よりちょっと小さい値や大きい値にすると、`Number.MAX_VALUE`と`Infinity`がちょうど切り替わるのが分かります。
|
50
50
|
|
51
51
|
```lang-javascript
|
52
52
|
|