Граница подшаблона DecimalFormat работает неправильно

Я использую DecimalFormat для создания форматированного десятичного числа, длина которого всегда составляет 6 символов. Сначала я использовал строку формата new DecimalFormat ("000.00") , но это дало мне ошибку для отрицательных чисел. Знак минус добавляется и увеличивает пространство номер один, что приводит к -005.25 , а не -05.25 , как хотелось бы.

Мне удалось исправить это с помощью следующего кода

DecimalFormat fmt;  
if(netAmt < 0){  
    fmt = new DecimalFormat("00.00");  
}else{  
    fmt = new DecimalFormat("000.00");  
}  

System.out.println(fmt.format(netAmt));

Но DecimalFormat имеет символ ; для форматирования отрицательных чисел иначе, чем положительных чисел. Мне не удалось правильно выполнить эту работу. Насколько я понимаю, следующий код должен работать так же, как и приведенный выше.

DecimalFormat fmt = new DecimalFormat("000.00;00.00");  

System.out.println(fmt.format(netAmt));

В результате образец перед ; используется как для отрицательных, так и для положительных чисел, поэтому ошибка -005,25 остается. Что я делаю неправильно? Я неправильно понимаю, для чего предназначен ; ?

5
задан AmaDaden 17 February 2011 в 16:03
поделиться