当前位置: 代码迷 >> C语言 >> 请教一个百思不得其解的问题!
  详细解决方案

请教一个百思不得其解的问题!

热度:287   发布时间:2006-10-16 22:34:33.0
以下是引用xixigzcn在2006-10-16 20:26:58的发言:

#include <stdio.h>

main()
{
float a;             将//float a 改为double a就有1.0了
for(a=0.0;a<=1.0;a+=0.1)
printf("%.1f\n",a);
}


为什么得不到1.0 ????

因为a+=0.1右边是double型,左边是float型,数据类型不匹配而已!


----------------解决方案--------------------------------------------------------

#include <stdio.h>

main()
{
double a;
for(a=0.0;a<=1.0;a+=0.1)
printf("%.lf\n",a);

return 0;
}
/*这个可以,但不是输出1.0*/


----------------解决方案--------------------------------------------------------
以下是引用nuciewth在2006-10-16 22:37:12的发言:

#include <stdio.h>

main()
{
double a;
for(a=0.0;a<=1.0;a+=0.1)
printf("%.lf\n",a); //不是.lf 是.1f 这个小地方要注意了    

return 0;
}
/*这个可以,但不是输出1.0*/


----------------解决方案--------------------------------------------------------
呵呵,我写的时候是.1lf,后来我看输出的是1,所以就改成.2lf,这样别的全输出两位小数.后来想把它改过来就不小心删掉1了.谢谢提醒.
----------------解决方案--------------------------------------------------------

  相关解决方案