Удалить конечные нули из строки валюты android

#android #currency #numberformatter

#Android #Валюта #numberformatter

Вопрос:

Я попытался преобразовать int в формат currency, и все сработало так, как я ожидал

пример 1000 —> Rp1.000

но на некоторых устройствах результаты не такие, как я ожидал
, т.е. 1000 —> Rp1.000,00

Итак, вопрос в том, как удалить последние 2 дополнительных nolls, если устройство их отображает.

мой текущий код:

     public static String toUang(String DigitUang) {

        return NumberFormat.getCurrencyInstance(new Locale("in", "ID")).format(Double.parseDouble(DigitUang));
    }
 

Ответ №1:

Лучшим решением здесь, вероятно, было бы исправить настройки вашего языка и обработать презентацию там. При этом вы также, вероятно, могли бы справиться с этим, используя замену регулярных выражений:

 public static String toUang(String DigitUang) {

    return NumberFormat.getCurrencyInstance(new Locale("in", "ID"))
                       .format(Double.parseDouble(DigitUang))
                       .replaceAll("[,.]00$", "");
}
 

Комментарии:

1. на некоторых устройствах нет настройки формата locale, но это тоже работает, спасибо