回答編集履歴
1
誤りを訂正
test
CHANGED
@@ -1,7 +1,31 @@
|
|
1
1
|
それはあなたが思っているような四捨五入ではありません。
|
2
2
|
|
3
|
-
0.005は2進数では正確に表せず、0.005よりわずかに大きい数になります。
|
3
|
+
~~0.005は2進数では正確に表せず、0.005よりわずかに大きい数になります。~~
|
4
4
|
|
5
|
-
9.789999999999999に0.005よりわずかに大きい数を足して9.795になるのは不思議はありません。
|
5
|
+
~~9.789999999999999に0.005よりわずかに大きい数を足して9.795になるのは不思議はありません。~~
|
6
6
|
|
7
|
-
またそもそも「9.789999999999999」などのような数は環境によって表示が変わってもおかしくなく、正しい0.005が足せたとしても10進数表記で見て正確な結果になるとは限りません。
|
7
|
+
~~また~~そもそも「9.789999999999999」などのような数は環境によって表示が変わってもおかしくなく、正しい0.005が足せたとしても10進数表記で見て正確な結果になるとは限りません。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
---
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
【訂正】
|
16
|
+
|
17
|
+
すいません。論理展開に誤りがありました。
|
18
|
+
|
19
|
+
0.005が(doubleで)0.005よりわずかに大きい数になるのは事実ですが、これを9.7899(略)に足したところで「わずかに大きい」部分は有効数字の外なので、9.795になるか否かとは無関係でした。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
正しくは、
|
24
|
+
|
25
|
+
「9.7899(略)に正確な0.005を足したものに最も近いdouble値」と9.7899(略)の差が、0.005よりわずかに大きい
|
26
|
+
|
27
|
+
です。
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
9.7899(略)に0.005よりわずかに小さい値を足しても同様に9.795になるはずです。
|