07/01/10 16:03:56
鉄道総合板の
ソースで食うか醤油で食うか迷うもの
スレリンク(train板)l50
から飛んできますたよ。
もちろん数学は素人なんですが、仕事がソフト屋(?)なので
「0.1」がコンピュータでは正しく扱えない話を思いだしました。
小数の桁というもの自体、何進数で数を表現しているかに依存します。
10(=2×5)進数で1÷10を表現するとうまく割り切れて0.1になりますが
コンピュータが使う2進数では1÷1010(10進数で10)はこんな感じです。
1の位:0
0.1の位(10進数で言う2分の1[0.5]の位):0
0.01の位(10進数で言う4分の1[0.25]の位):0
0.001の位(10進数で言う8分の1[0.125]の位):0
0.0001の位(10進数で言う16分の1[0.0625]の位):1
0.00001の位(10進数で言う32分の1[0.03125]の位):1
0.000001の位(10進数で言う64分の1[0.015625]の位):0
…
つまり0.000110…で割り切れない数です。
1÷3は3進数の数え方では1÷10になり、結果は0.1という表記、
これを10(10進数の3)倍すると1。
そういう「割り算の結果」の数を前提にしているかそうでないかで話が違うのでしょうね。
よくわかりませんが。