格式化用Java打印的数字

时间:2012-11-02 22:12:36

标签: java formatting number-formatting

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

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

事情就是打印

-01  
05

我想要打印

-1  
05

-01  
 05

有没有办法在不使用if语句的情况下执行此操作?

2 个答案:

答案 0 :(得分:4)

嗯,显然你可以提供两种格式,一种用于正数,一种用于负数。 See here

所以你应该使用

DecimalFormat formatter = new DecimalFormat("#00;#0");

答案 1 :(得分:0)

你要求DecimalFormat做的比它更多。它只格式化数字,如果您希望将该数字进一步格式化为 String ,则需要将其与“String”组合Formatter({ {3}})。

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(这可能是你想要的)。