帮小弟解释下低级问题
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.是不书上例题目错误啊?
----------------解决方案--------------------------------------------------------