Printf 与双重格式问题
我有以下 printf 语句:
printf("val=%-4.2lf", val);
但是,val 永远不会用空格填充,因此如果小数点前有 3 或 4 位数字,则 val 占用的空间会有所不同。格式说明符中的 4 不应该保证至少有 4 个空格吗?
很抱歉这个新问题,但这让我很沮丧。
I've got the following printf statement:
printf("val=%-4.2lf", val);
However, val is never padded with spaces so the space taken up by val is different if there are 3 or 4 digits before the decimal. Shouldn't the 4 in the format specifier guarantee that there are at least 4 spaces?
Sorry for the newb question but it's been frustrating me.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
4 指定最小 total 字段 - 您还可以指定小数点和小数点后的 2 位数字,这些数字在 4 个字符字段宽度中至少占 3 个字符。
因此,如果您希望小数点前的最小字段宽度为 4 个字符,则需要使用
%-7.2lf
格式。The 4 specifies the minimum total field with - you also have the decimal point and the 2 digits after the decimal that are taking a minimum of 3 characters out of that 4 character field width.
So if you want a minimum field width of 4 characters before the decimal point, you'd want to use a format of
%-7.2lf
.