C语言关于数据类型的问题

Float double这两个数据类型我不是很明白!书上说的是float输出六位有效数字,double是输出十六位有效数字。那它们各输出几位小数?怎么区别什么时候用float什么时候用double?
#Include<stdio.h>
{void main()
float f=314.15;
printf("f=%f, f=%e",f,f);

这里输出的值为什么是f=314.149994,f=3.141500e+002
不懂!?

悬赏分很少啊,不过蚂蚱也是肉啊。呵呵。
Float和Double计算后都能达到他们自己的小数点数。但是在计算机中表示他们的时候并不能完全正确的表示。对于Float计算机只能保证其小数点后6位数的精确值,double是16位。
f=314.149994 (小数点后6位:0.141500)
f=3.141500e+002(小数点6位:0.141500)。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-11
double都包含了所有的float用法,以后全部把float改为double就行了
相似回答