在运行以下代码行时:
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 循环中是浮点数不准确时i = 2
,存储在变量中的a
值为99
。
但如果你改为写
a=pow(10,2);
现在 a 的值变成了100
。这怎么可能?