c语言的这个问题如何解释?(win tc的)
来源:百度知道 编辑:UC知道 时间:2024/05/26 17:56:47
main()
{
float a,sum=0;
for(a=0.1;a<=1.0;a=a+0.1)
{
sum=sum+a;
}
printf("%f",sum);
getch();
}
结果是4.5
而答案是5.5
如何解释???
大哥们啊,你们先复制一下试试
可它真不是 我都试了N遍了
救救我吧!!!
{
float a,sum=0;
for(a=0.1;a<=1.0;a=a+0.1)
{
sum=sum+a;
}
printf("%f",sum);
getch();
}
结果是4.5
而答案是5.5
如何解释???
大哥们啊,你们先复制一下试试
可它真不是 我都试了N遍了
救救我吧!!!
精度问题
#include "stdio.h"
#include "conio.h"
int main()
{
float a,sum=0;
for(a=0.1;a<=1.0;a=a+0.1)
{
sum=sum+a;
printf("sum=%f %10.7f \n",sum, a);
}
printf("%f",sum);
getch();
}
运行看一下 显示的 a的值就明白了
把 a 的类型 改为 double 就行了
#include "stdio.h"
#include "conio.h"
int main()
{
double a;
float sum=0;
for(a=0.1;a<=1.0;a=a+0.1)
{
sum=sum+a;
}
printf("%f",sum);
getch();
}
从0.1加到1.0,应该就是5.5吧~