Форматировать валюту в Android, как метод getPrice в SkuDetails - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь преобразовать число с плавающей точкой в ​​строку валюты в аналогичном формате, возвращаемом методом getPrice SkuDetail, для справки он возвращает строку, подобную этой 1 234,56 Ft

Я пробовал

    NumberFormat format = NumberFormat.getCurrencyInstance();
    format.setCurrency(Currency.getInstance("HUF"));
    format.format(12345.67)

Но возвращается HUF1,2345.67

Есть ли способ достичь результата, аналогичного методу getPrice?

1 Ответ

0 голосов
/ 23 января 2019

Если вы всегда хотите, чтобы формат валюты соответствовал американизированным ожиданиям, оставьте локаль как Locale.US. Если вы хотите, чтобы валюта отображалась локально, оставьте реализацию как есть. Язык управляет форматом, vs. и где появится знак валюты.

   Double number = 1500D;

    // Format currency for Canada locale in Canada locale, 
    // the decimal point symbol is a comma and currency
    // symbol is $.
    NumberFormat format = NumberFormat.getCurrencyInstance(Locale.CANADA);
    String currency = format.format(number);
    System.out.println("Currency in Canada : " + currency);

    // Format currency for Germany locale in German locale,
    // the decimal point symbol is a dot and currency symbol
    // is €.
    format = NumberFormat.getCurrencyInstance(Locale.GERMANY);
    currency = format.format(number);
    System.out.println("Currency in Germany: " + currency);

Результаты

Currency in Canada : $1,500.00
Currency in Germany: 1.500,00 €

Вот еще один ответ Порядок символов валюты Android

...