Я использую десятичный формат для отображения цен в разных локалях.
Мой базовый формат:
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
String cur_syl = dfs.getCurrencySymbol().toString();
DecimalFormat df = new DecimalFormat(cur_syl+"0.00");
total.setText(df.format(line_total));
Это работает для меня и показывает правильный символ валюты для местного. Тем не менее, иногда дробная часть идет в более чем 2 места .. (из-за преобразования единиц измерения (оставляет очень маленькую часть). Дисплей показывает 0,00, если сумма действительно 0,005. Я хотел бы отображать только дополнительные десятичные разряды если там есть значения. Я не хочу показывать 0,0050000 только для учета сумм, которые меньше, чем один хундрет.
Я прошел через большую часть помощи и в Интернете. Это немного смущает меня, и я собираюсь сделать причудливый код для решения этой проблемы, но я уверен, что есть хороший простой способ сделать что мне нужно.
Я хотел бы отобразить цифры следующим образом:
.05 = $0.05
.005 = $0.005
.0005 = $0.0005
Если программа показывает: $ 0,0005 = $ 0,00, это будет выглядеть как ошибка.
Любая помощь будет принята с благодарностью ..