Я использую 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
сохраняется. Что я делаю неправильно? Я неправильно понимаю, для чего ;
? 1016 *