以下示例代码:
System.out.printf(" %1.1f " , 2122.3856);
打印出2122.4
我为上面的结果指定的格式显示我要求一个小数点和1个字符长的宽度。我可以看到一个小数点(即.4),但为什么指定的宽度不起作用?
答案 0 :(得分:2)
引用http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax(重点是我的):
宽度是最小要写入输出的字符数
如果您的号码较大,则会完全打印出来。如何用一个字符打印2122?
答案 1 :(得分:1)
width
specification is the minimum,而非最大值。
如果你想强制一个基本上使数字值无意义的宽度,你应该做数学(比如得到第十个位置)或者操纵转换为字符串。
答案 2 :(得分:1)
我在java.util.Formatter的javadoc中找到了以下内容(强调我的):
可选宽度是一个非负十进制整数,表示要写入输出的最小字符数。
宽度仅为最小值,用于填充输出,以便(例如)列排列。