黑马程序员技术交流社区
标题: 四舍五入的问题 挠头了 求解 [打印本页]
作者: 该有个目标了 时间: 2014-8-20 11:07
标题: 四舍五入的问题 挠头了 求解
#include<stdio.h>
int main()
{
float i = 23.4573246;//结果 23.45999
int j = i *100 +0.5;
float k = (float)j/100;
printf("%f",k);
return 0;
}
#include <stdio.h>
int main()
{
float i = 24.35689; //结果 24.36000
int j = i *100 +0.5;
float k = (float)j/100;
printf("%f",k);
return 0;
}
同样的句子 结果 咋就不一样???????晕了。
作者: 潘多拉 时间: 2014-8-20 12:06
首先强制转换跟自动转换你没注意到,主函数第二句里浮点型数据赋给了int型变量j,损失精度,第三句强转过程中也应该是注意优先级吧,结果肯定不一样!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |