黑马程序员技术交流社区

标题: float函数计算 [打印本页]

作者: 王海江1    时间: 2014-6-2 12:46
标题: float函数计算
本帖最后由 王海江1 于 2014-6-13 22:11 编辑

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


为什么是这个结果呢?不是应该是333333.333吗?
作者: 呀嘛咕    时间: 2014-6-2 22:21
printf("%f",x+y)
默认是保留6位小数的。
你要保留3位小数可以写成:
printf("%.3f\n",x+y);
作者: 王海江1    时间: 2014-6-4 08:11
那为什么不是333333.333000呢?
作者: 王海江1    时间: 2014-6-4 08:12
呀嘛咕 发表于 2014-6-2 22:21
printf("%f",x+y)
默认是保留6位小数的。
你要保留3位小数可以写成:

那为什么不是333333.333000呢?333333.328125是怎么算出来的呢?
作者: 呀嘛咕    时间: 2014-6-4 11:59
王海江1 发表于 2014-6-4 08:12
那为什么不是333333.333000呢?333333.328125是怎么算出来的呢?

单精度没那么精确的 你用double就是333333.333000了
作者: 王海江1    时间: 2014-6-4 17:43
那小数点后的六位数是怎么来的呢?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2