printf(),sprintf() 与 %f

关于 %f 格式化输出,网上 大部分资料讲解都很模糊。这里总结一下!

问题1. %m.nf是什么意思?
最笼统的回答是:总共输出 m 位,其中小数占 n 位,右对齐,总计不足 m 位则左端补空格。

问题2. m 位包含小数点么?
答:包含。C语言中,数据输出宽度包括小数点。

问题3. %f 如何实现左对齐?
答:使用 %-f。

问题4. 如果不足 m 位,如何实现补零或补其他内容?
答:可以使用 %0m.nf 格式,如果想要补其他内容,则将其他内容代替上述格式中的“0”。

问题5. 我想强制 %f 输出正负号该如何实现?
答:使用 %+f 可强制输出正负号。

问题6. 我用 %6.2f 输出 float a=123.45 为什么得到的是 “123.45”而不是“123.45”(其中“”表示空格)?不是右对齐么?不是左端补空格么?
答:那是因为你没有把小数点计算在内。如果将小数点计算在内 “_123.45”一共是 7 位。所以,想要按这种格式输出,应当使用 %7.2f。

posted @ 2022-11-21 18:54  TwcatL_tree  阅读(4)  评论(0编辑  收藏  举报