c语言中double,float输出问题

double 和 float都是用%f输出么?
书上写的它们的有效数字分别是6和15,为什么我写以下代码,结果都是555.434379?

long double a=555.434378956567;
float b=a;
printf("%lf\n%f",a,b);

double 和 float都可以用%f输出。默认6位小数。如果是其它要求,需要指定。如
printf("%.11lf\n%.3f",a,b);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-04
在输出的时候double类型默认输出小数点后6位, 如果想看后面一些, 采用%m.nf格式输出
m为小数点前位数, n为小数点后位数按照你给出的数可以写成
printf("%3.12f\n%f", a, b);
第2个回答  2013-03-04
默认是六位的
第3个回答  2013-03-04
默认输出位数相同
相似回答