浮動小数点の精度

えーと…
よく聞く話だと思う
浮動小数点の精度について


double d = 0.0;


for(int i = 0;i < 100;i++) {
d += 0.1;
}


こんな感じプログラムで実験してみるとよくわかる
C言語の場合
10.000000
gcc, visual studioで試したが結果は同じ)
うん、いい感じだ
続いてjavaの場合
9.99999999999998
あれ?
続いて
perlさんは?
9.99999999999998
むむ・・・
じゃあ今はやりのrubyさんは?
9.99999999999998
おやおや…


言語によって差はあるものの
計算回数が多いと簡単な計算でもこんな感じになるのだ


皆さん気を付けてくださいね
ちなみに実際にこのプログラムを書いてみて
ループの中で毎回出力すると
これまた面白結果が見られるの是非お試しあれ