Java printf格式化异常:指定宽度6未产生前导空格问题咨询
为什么%6.2f没有生成前导空格?
%6.2f中的6指的是格式化后数字的总字符宽度,包含整数部分、小数点和小数部分的所有字符。
你的数字597.7231经过%.2f格式化后是597.72,数一下这个结果的字符数:5、9、7、.、7、2,刚好是6个字符,完全占满了%6.2f指定的宽度,所以没有多余空间添加前导空格。
如果要看到前导空格,可以试试两种方法:
- 把宽度设得比6大,比如用
%7.2f,格式化后会输出597.72(前面多一个空格) - 换一个更短的数字,比如12.34,用
%6.2f会输出12.34(前面两个空格)
示例代码:
System.out.printf("Out: %.2f%n", 597.7231); System.out.printf("Out: %6.2f%n", 597.7231); System.out.printf("Out: %7.2f%n", 597.7231);
内容的提问来源于stack exchange,提问作者Kazien
相关产品推荐
相关产品推荐

