Попробуйте это
find /path/to/jpgs -type f -exec sh -c 'jhead -v {} | grep 123' \; -print
, Кроме того, Вы могли попытаться встроить свой исполнительный оператор в sh сценарии и затем сделать:
find -exec some_script {} \;
Я бы порекомендовал вам сделать это:
NumberFormat currencyFormatter = NumberFormat.getCurrencyInstance();
double price = 2.50000000000003;
System.out.println(currencyFormatter.format(price));
Это также имеет то преимущество, что зависит от локали. Это сработает, например, если вы находитесь в зоне евро, а не в США.
В то время как другие ответы совершенно верны (особенно ответ duffymo), у вас есть гораздо более серьезная проблема, чем форматирование дисплея. Фактически вы используете полностью неправильный тип для денежной суммы, которая является дискретным значением. Вместо double
вам действительно стоит подумать об использовании java.lang.BigDecimal
.
(EDIT: ... или хорошо реализованного класса Money, как указано duffymo в комментарий, например классы из модуля JScience monetary или более позднего Joda-Money , который еще не выпущен в качестве официальной версии.)
Вероятно, это можно сделать с помощью String.format (...), но вы можете использовать DecimalFormat
:
double price = 2.50000000000003;
DecimalFormat formatter = new DecimalFormat("$0.00");
System.out.println(formatter.format(price)); // print: $2.50
Вы пробовали:
String s = String.format("$%.2f", 2.50);
Это поможет.