Как правильно отобразить цену до двух десятичных чисел (центы) включая конечные нули в Java?

Попробуйте это

find /path/to/jpgs -type f -exec sh -c 'jhead -v {} | grep 123' \; -print

, Кроме того, Вы могли попытаться встроить свой исполнительный оператор в sh сценарии и затем сделать:

find -exec some_script {} \;
6
задан Community 23 May 2017 в 10:30
поделиться

4 ответа

Я бы порекомендовал вам сделать это:

NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
double price = 2.50000000000003;
System.out.println(currencyFormatter.format(price));

Это также имеет то преимущество, что зависит от локали. Это сработает, например, если вы находитесь в зоне евро, а не в США.

19
ответ дан 8 December 2019 в 02:07
поделиться

В то время как другие ответы совершенно верны (особенно ответ duffymo), у вас есть гораздо более серьезная проблема, чем форматирование дисплея. Фактически вы используете полностью неправильный тип для денежной суммы, которая является дискретным значением. Вместо double вам действительно стоит подумать об использовании java.lang.BigDecimal .

(EDIT: ... или хорошо реализованного класса Money, как указано duffymo в комментарий, например классы из модуля JScience monetary или более позднего Joda-Money , который еще не выпущен в качестве официальной версии.)

14
ответ дан 8 December 2019 в 02:07
поделиться

Вероятно, это можно сделать с помощью String.format (...), но вы можете использовать DecimalFormat :

double price = 2.50000000000003;
DecimalFormat formatter = new DecimalFormat("$0.00");
System.out.println(formatter.format(price)); // print: $2.50
11
ответ дан 8 December 2019 в 02:07
поделиться

Вы пробовали:

String s = String.format("$%.2f", 2.50);

Это поможет.

4
ответ дан 8 December 2019 в 02:07
поделиться
Другие вопросы по тегам:

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