誤差…そいつは、困ったちゃん
誤差に対応するには、ど~したら
いいのか?
include <stdio.h>
double absd( double d )
{
return d >= 0.0 ? d : -d;
}
void main( void )
{
double A;
int i;
A = 0.0;
for( i = 0 ; i < 10 ; i++ )
A += 0.1;
printf( "結果:%f - %s\n", A, absd( A - 1.0 ) < 0.01 ? "1.0ぽいです。\n" : "1.0ぽくないです。\n" );
}
結果:1.000000 - 1.0ぽいです。
多分、こんな感じでやれば
いんじゃないかなぁ~。
まあ、だめでもともと
その時には、固定小数点にでも
すればいいし…。<それで良いのか?
しかし、連続して計算していくと
誤差は、どんどん蓄積していく…。
そして、誤差が一定量を超えると
コンピュータは、爆発するのだ!
気を付けよう。
…。
…。
うそだぞ。
| 固定リンク
コメント