У меня есть сообщение об ошибке от шведского пользователя, в котором говорилось, что наша шведская валюта использует неправильный разделитель десятичной дроби.Форматирование валюты в Android с использованием неправильного десятичного разделителя
NumberFormat enUS = NumberFormat.getCurrencyInstance(Locale.US);
NumberFormat enGB = NumberFormat.getCurrencyInstance(Locale.UK);
NumberFormat svSE = NumberFormat.getCurrencyInstance(new Locale("sv", "SE"));
double cost = 1020d;
String fmt = "en_US: %s en_GB %s sv_SE %s";
String text = String.format(fmt, enUS.format(cost), enGB.format(cost), svSE.format(cost));
Log.e("Format", text);
> Format﹕ en_US: $1,020.00 en_GB £1,020.00 sv_SE 1 020:00 kr
Говорят, что формат должен быть «1 020,00 kr». Когда я проверяю объект формата, похоже, что он имеет decimalSeparator из «,» в таблице символов, но «moneySeparator» из «:».
Кто-нибудь знает, действительно ли: действительно ли это ошибка в Android/java или какой-либо обходной путь?
Какую версию java вы используете? На 1.6.0_10 мой результат: 'en_US: $ 1,020.00 en_GB £ 1,020.00 sv_SE 1 020,00 kr', который показывает правильный формат. – ufis