for loop - 意外增加的浮点值

时间:2017-03-23 07:38:16

标签: c gcc numerical-methods

这是我的ANSI C代码。

int i,j;
float t,h;

i=30;
t=0.0;
h=0.1;

for(j=0; j <= i; j=j+1)
  {
    printf("time=%f\n",t);
    t=t+h;
  }

以上代码的输出是:

time=0.000000
time=0.100000
time=0.200000
time=0.300000
time=0.400000
time=0.500000
time=0.600000
time=0.700000
time=0.800000
time=0.900000
time=1.000000
time=1.100000
time=1.200000
time=1.300000
time=1.400000
time=1.500000
time=1.600000
time=1.700000
time=1.800000
time=1.900000
time=2.000000
time=2.100000
time=2.200000
time=2.300000
time=2.400000
time=2.500000
time=2.600000
time=2.700000
time=2.799999
time=2.899999
time=2.999999
time=3.099999

最后四个条目应如下:

  

时间= 2.800000

     

时间= 2.900000

     

时间= 3.000000

     

时间= 3.100000

但我得到了不同的价值观。为什么这样 ? 任何帮助将受到高度赞赏。

0 个答案:

没有答案