格式化浮点数并指定结果的宽度

时间:2011-12-31 16:39:03

标签: java formatting

以下示例代码:

System.out.printf(" %1.1f " , 2122.3856); 

打印出2122.4

我为上面的结果指定的格式显示我要求一个小数点和1个字符长的宽度。我可以看到一个小数点(即.4),但为什么指定的宽度不起作用?

3 个答案:

答案 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中找到了以下内容(强调我的):

  

可选宽度是一个非负十进制整数,表示要写入输出的最小字符数。

宽度仅为最小值,用于填充输出,以便(例如)列排列。