首页 > 解决方案 > C中的 %0.f 和 %.f 有区别吗

问题描述

我正在尝试将浮点数打印到没有小数位,我使用了 %0.f 和 %.f 他们给了我相同的结果。它们之间有区别吗?

标签: c

解决方案


是的,它们是一样的。

小数点左边的数字是在用空格填充之前要打印的最小位数。

如果该数字以零开头,则还表明该数字应该用零而不是空格填充。对于零长度,将不应用填充。打印长度小于零的数字是不可能的,因此永远不会使用附加的填充指示符。

在任何一种情况下,都必须打印一些数字,这意味着即使您表示您想要一个最小长度为零的浮点数,它也会打印出超过最小长度以显示数字的值。对于您的测试用例,printf("%0.f", 0.0f)将显示的输出0决定打印超过最小字符数以显示该数字。

对于那些混淆注意%0.f%.0f一个指定最小位数,另一个是精度修饰符。

对于浮点数,.字符的存在表示指定的精度,右侧没有数字被解释为0. 所以%3.0f%3.f是等价的。如果您没有在浮点数中提供 a .,则假定您的浮点数有效地格式化为.6


推荐阅读