【初心者歓迎】C/C++室 Ver.20【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0627デフォルトの名無しさん
2005/08/23(火) 15:46:34練習問題の解答が以下として載っていたのですが…
#include <stdio.h>
int main(void)
{
float f;
for(f=1.0; (int) f<= 9; f=f + 0.1)
printf("%f ", f);
return 0;
}
これを実行すると、
1.000000 1.100000 1.200000 1.300000 1.400000 1.500000 1.600000 1.700000
1.800000 1.900000 2.000000 2.100000 2.200000 2.300000 2.400000 2.500000
2.600000 2.700000 2.799999 2.899999 2.999999 3.099999 3.199999 3.299999
3.399999 3.499999 3.599999 3.699999 3.799999 3.899998 3.999998 4.099998
4.199998 4.299998 4.399998 4.499998 4.599998 4.699998 4.799998 4.899998
4.999998 5.099998 5.199997 5.299997 5.399997 5.499997 5.599997 5.699997
5.799997 5.899997 5.999997 6.099997 6.199996 6.299996 6.399996 6.499996
6.599996 6.699996 6.799996 6.899996 6.999996 7.099996 7.199996 7.299995
7.399995 7.499995 7.599995 7.699995 7.799995 7.899995 7.999995 8.099995
8.199995 8.299995 8.399996 8.499996 8.599997 8.699997 8.799997 8.899998
8.999998 9.099998 9.199999 9.299999 9.400000 9.500000 9.600000 9.700001
9.800001 9.900002
と、なんか途中から誤差が出てくるんですが、どうしてでしょうか?
■ このスレッドは過去ログ倉庫に格納されています