A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王海江1 中级黑马   /  2014-6-2 12:46  /  1255 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王海江1 于 2014-6-13 22:11 编辑

main()
{float x,y;
x=111111.111;y=222222.222;
printf("%f",x+y)
}
运行结果是:333333.328125


为什么是这个结果呢?不是应该是333333.333吗?

5 个回复

倒序浏览
printf("%f",x+y)
默认是保留6位小数的。
你要保留3位小数可以写成:
printf("%.3f\n",x+y);
回复 使用道具 举报
那为什么不是333333.333000呢?
回复 使用道具 举报
呀嘛咕 发表于 2014-6-2 22:21
printf("%f",x+y)
默认是保留6位小数的。
你要保留3位小数可以写成:

那为什么不是333333.333000呢?333333.328125是怎么算出来的呢?
回复 使用道具 举报
王海江1 发表于 2014-6-4 08:12
那为什么不是333333.333000呢?333333.328125是怎么算出来的呢?

单精度没那么精确的 你用double就是333333.333000了
回复 使用道具 举报
那小数点后的六位数是怎么来的呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马