2

我想在打印时格式化我的号码。我在用着

private static DecimalFormat formatter = new DecimalFormat("#00");

问题是它打印

-01  
05

我想打印

-1  
05

或者

-01  
 05

有没有办法在不使用 if 语句的情况下做到这一点?

4

2 回答 2

4

好吧,显然您可以提供两种格式,一种用于正数,一种用于负数。看这里

所以你应该使用

DecimalFormat formatter = new DecimalFormat("#00;#0");
于 2012-11-02T22:17:10.537 回答
0

您要求 DecimalFormat 做的比它做的更多。它仅格式化数字,如果您希望将该数字进一步格式化为String,则需要将其与“String” Formatter此处为 javadoc)结合起来。

Formatter formatter = new Formatter(System.out);
DecimalFormat numFormatter = new DecimalFormat("#00");
formatter.format("%3s\n", numFormatter.format(-3));
formatter.format("%3s\n", numFormatter.format(11));
formatter.format("%3s\n", numFormatter.format(2));

输出

-03
 11
 02

请注意,字符串格式化程序将所有字符串对齐为三个字符宽。如果您输入的值大于三个字符,那么它将溢出 3 的 [width](这可能是您想要的)。

于 2012-11-02T23:18:01.773 回答