我在一个循环中执行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);
å¨ä½¿ç¨æ¯ï¼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中较短的输出宽度输出单、双精度实数;
%g,G:以%f或%e中较短的输出宽度输出单、双精度实数;
第2个回答 2014-04-06
printf("%d %.8g\n",i,sum);本回答被提问者采纳