Форматировать валюту в Android, как метод getPrice в SkuDetails

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

я пробовал

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

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

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

1 ответ

Если вы всегда хотите, чтобы формат валюты соответствовал американизированным ожиданиям, оставьте локаль как 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 по условному обозначению валюты

Другие вопросы по тегам