R で,実数の内部表現をプリントさせてみると,4項目から既に,末尾にゴミが入る。
これは,多倍長演算をしても,例えビット数を無限にしても最下位にゴミが入る(だって,2の羃乗数でない限り2進数では正確に表せないのだから,あたりまエ)
第 4 項
> a
[1] 3.0000000000000004441
> print(sprintf("%a", a))
[1] "0x1.8000000000001p+1"
> a==3
[1] FALSE
第 5 項
> a
[1] 5.0000000000000008882
> print(sprintf("%a", a))
[1] "0x1.4000000000001p+2"
> a==5
[1] FALSE
:
第 10 項
> a
[1] 55.000000000000014211
> print(sprintf("%a", a))
[1] "0x1.b800000000002p+5"
> a==55
[1] FALSE
※コメント投稿者のブログIDはブログ作成者のみに通知されます