回答編集履歴
2
追記
test
CHANGED
@@ -13,3 +13,7 @@
|
|
13
13
|
その値から、高々123456789.0を引いても、小数点の上971ビット目は1ですので切り上られて元に戻ってしまいます。
|
14
14
|
|
15
15
|
|
16
|
+
|
17
|
+
小さな10進数の値で考えると分かりやすいです。
|
18
|
+
|
19
|
+
50,000から100引くと49,900となります。この1,000の桁を四捨五入したら50,000に戻るという現象です。
|
1
typo
test
CHANGED
@@ -8,6 +8,8 @@
|
|
8
8
|
|
9
9
|
DBL_MAXは 1.11111...(52ビット) * 2^1023 です。
|
10
10
|
|
11
|
-
52ビットを1023ビット左シフト
|
11
|
+
小数点直下から52ビット連続の1を1023ビット左シフトした値なので、結果は小数点の上に1023-52=971ビットの0が続きます。
|
12
12
|
|
13
|
-
その値から、高々123456789.0を引いても、小数点の上971ビット目
|
13
|
+
その値から、高々123456789.0を引いても、小数点の上971ビット目は1ですので切り上られて元に戻ってしまいます。
|
14
|
+
|
15
|
+
|