运行以下代码行时: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..那件事怎么可能?
3 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
a
int
. pow()
守着一只汪
TA贡献1872条经验 获得超3个赞
pow()
double
a
int
pow()
a = round(pow(10, i))
.
慕森卡
TA贡献1806条经验 获得超8个赞
pow()
1 10 100 1000 10000
#include <stdio.h>#include <math.h>main (){ double i,a; for(i=0.0; i <= 4.0 ;i++) { a=pow(10,i); printf("%lf\t",a); }}
1.000000 10.000000 100.000000 1000.000000 10000.000000
- 3 回答
- 0 关注
- 528 浏览
添加回答
举报
0/150
提交
取消