2013-11-28 3 views
2

Я пытаюсь отформатировать (обычно большой) цифровой выход с пространством в качестве разделителя тысяч, используя следующий код:Java DecimalFormat форматирования нулевой

final String PATTERN = "#,##0"; 
int value1 = Integer.MAX_VALUE; 
int value2 = 0; 
DecimalFormatSymbols dfs = new DecimalFormatSymbols(); 
dfs.setGroupingSeparator(' '); 
DecimalFormat df = new DecimalFormat(PATTERN, dfs); 
System.out.println("`" + df.format(value1) + "`"); 
System.out.println("`" + df.format(value2) + "`"); 

Однако, что оставляет меня очень смущен, выход:

`2 147 483 647` 
`` 

Пожалуйста, что правильный образец для достижения моего желаемого результата:

`2 147 483 647` 
`0` 
+3

Я получаю '0', когда запускаю ваш код. Какую версию Java и Locale вы используете? – Keppil

+0

Я тоже получаю '0' ... JDK 1.7 – rolfl

+0

Не могли бы вы напечатать свой« Локаль »по умолчанию? –

ответ

0

Как ходу люди уже ответили в комментариях, шаблон правильный и дает желаемый результат.

Проблемная часть была всего в одном шаге. Предполагая, что код в вопросе, то, если df.format(getNumber()); сбой в #getValue(), #format() никогда не выполняется, что (в моем коде) в конечном итоге привело к пустой строке в пользовательском интерфейсе и моей путанице.

Смежные вопросы