Покажите дополнительному нулевому использованию DecimalFormat

Использование regex и теперь у Вас есть две проблемы. я разделил бы вещь на точках (". "), затем удостоверьтесь, что каждая часть является или подстановочным знаком или набором цифр (regex, прекрасно теперь). Если вещь допустима, Вы просто возвращаете корректный блок разделения.

33
задан Willi Mentzel 29 January 2017 в 14:43
поделиться

4 ответа

Класс DecimalFormat предназначен для преобразования десятичного числового значения в строку. В вашем примере вы берете строку, полученную из метода format (), и помещаете ее обратно в переменную типа double. Если вы затем выводите эту двойную переменную, вы не увидите отформатированную строку. См. Пример кода ниже и его выходные данные:

int count = 10;
int total = 20;
DecimalFormat dec = new DecimalFormat("#.00");
double rawPercent = ( (double)(count) / (double)(total) ) * 100.00;

double percentage = Double.valueOf(dec.format(rawPercent));

System.out.println("DF Version: " + dec.format(rawPercent));
System.out.println("double version: " + percentage);

Какие выходы:

"DF Version: 50.00"
"double version: 50.0"
35
ответ дан 27 November 2019 в 18:03
поделиться

Используйте формат "# .00".

7
ответ дан 27 November 2019 в 18:03
поделиться

Вы можете попробовать что-нибудь вроде:

DecimalFormat df = new DecimalFormat("0.000000");
df.setMinimumFractionDigits(0);
df.setMinimumIntegerDigits(2);

Таким образом вы можете гарантировать минимальное количество цифр до или после десятичной дроби

8
ответ дан 27 November 2019 в 18:03
поделиться

Попробуйте вместо этого использовать DecimalFormat со значением «0.00». Согласно JavaDocs , это не удалит лишние нули.

0
ответ дан 27 November 2019 в 18:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: