次のコード行の実行中:
int i,a;
for(i=0;i<=4;i++)
{
a=pow(10,i);
printf("%d\t",a);
}
出力を見て驚いたのは、 1 10 99 1000 9999代わりに1 10 100 1000 10000.
考えられる理由は何ですか?
注
上記の for ループの wheni = 2で、変数に格納されている値aがであることが浮動小数点の不正確さであると思われる場合99。
しかし、代わりに書くと
a=pow(10,2);
これで a の値は になります100。そんなことがあるものか?