当前位置: 代码迷 >> C语言 >> 帮小弟解释下低级问题
  详细解决方案

帮小弟解释下低级问题

热度:69   发布时间:2006-07-30 15:05:55.0
帮小弟解释下低级问题
main()
{float x,y ;
x=111111.111; y=222222.222;
printf("%f",x+y);
}
为什么他的运行结果为
333333.328125
运行结果小数点后面的328125是哪里来的.请各位帮小弟解释下.谢谢.

(问题很烂但是初学者没办法)嘿嘿请各位见量了)
搜索更多相关的解决方案: 解释  

----------------解决方案--------------------------------------------------------
#include<stdio.h>
int main()
{
double x,y; //改成double的
x=111111.111;
y=222222.222;
printf("%f\n",x+y);
return 0;
}
----------------解决方案--------------------------------------------------------

float 应该改为 double`~~


----------------解决方案--------------------------------------------------------
可是书上的例题上这么写的啊.搞不清楚了
----------------解决方案--------------------------------------------------------
因为float是单精度的,有效位数一般是7位,所以后面28125是随机的

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

谢谢了.终于明白了!


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

请问下是不是要该成double.是不书上例题目错误啊?


----------------解决方案--------------------------------------------------------
  相关解决方案