На Android я пытаюсь отформатировать некоторую валюту с определенным номером формата.Валютный формат для валюты, отличной от Locale
Мой номер должны быть отформатированы с французского форматирования (9 876 543,21
), но символ валюты должен быть помещен в зависимости от валюты:
9 876 543,21 €
для EUR
$9 876 543,21
для USD
Вот мой код прямо сейчас (здесь используются классы java.util
, но результат тот же с пакетом android.icu
):
final Double of = Double.valueOf("9876543.21");
final Currency usd = Currency.getInstance("USD");
final NumberFormat currencyInstance = NumberFormat.getCurrencyInstance(Locale.FRANCE);
currencyInstance.setCurrency(usd);
Log.d("test", currencyInstance.format(amount));
И выход 9 876 543,21 $US
, потому что для моего NumberFormat используется французский язык.
Примечание: Язык должен быть ФРАНЦИЕЙ (или FRENCH) для хорошего форматирования чисел, и я действительно не знаю код валюты (например, EUR, USD или GBP), это будет просто строка из веб-сервис.
Есть ли способ сообщить форматированию, что я хочу форматирование французского номера, но что ему нужно уважать размещение валюты для символа?
Вы уверены, что о желании символа в соответствии с валютой? Из быстрого просмотра сети размещение символа, по-видимому, определяется локалью отображения, а не валютой (так что трейлинг $ будет казаться правильным во французском языке). – TripeHound
Вот что я узнал из чтения по сети. Но мне только что сказали реализовать форматирование валюты, как это, и мне было интересно, можно ли это сделать с помощью стандартного NumberFormatter. Вероятно, я должен начать лоббирование с «бизнес-парнями», чтобы просто форматировать валюты с нормализованным форматом ... – pdegand59