Форматировать валюту в 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 по условному обозначению валюты