c语言打印double类型

我在一个循环中执行printf("%d %0.8f\n",i,sum);
如何让它输出
n e
- -----------
0 1
1 2
2 2.5
3 2.666666667
4 2.708333333
.......

而不是

.........
0 1.00000000
1 20000000
2 2.5000000
3 2.666666667
4 2.708333333
............

就是说怎么知道它什么最低位都是0了,从而不将它打印出来??

在C语言中,打印double类型需要使用格式化输出函数printf。
在使用是,double的通配符为%lf。
比如定义double a = 1.234;
可以用
printf("%lf", a);
实现打印。
默认打印6位小数,可以通过
printf("%.xlf",a);
来控制小数位数。 其中x为常数,代表打印的小数位数。

除此外,还可以用
printf("%e", a);
实现以科学计数法来输出a。

如果不想自行选择科学计数法还是正常小数输出,可以由系统自行选择最短情况,只能控制,只需要
printf("%g", a);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-06
%f:浮点型输出,默认保留6位小数位,四舍五入或补零;
%g,G:以%f或%e中较短的输出宽度输出单、双精度实数;
第2个回答  2014-04-06
printf("%d %.8g\n",i,sum);本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网