Locale locale = Locale.getDefault();
final NumberFormat numberFormat = NumberFormat.getCurrencyInstance(locale);
区域设置是es_US
numberFormat是
java.text.DecimalFormatSymbols[currency=USD,currencySymbol=$,decimalSeparator=,,digit=#,exponentSeparator=E,groupingSeparator=.,infinity=∞,intlCurrencySymbol=USD,minusSign=-,monetarySeparator=,,NaN=NaN,patternSeparator=;,perMill=‰,percent=%,zeroDigit=0]
decimalSeparator和groupingSeparator是错误的,它们应该是。而且,分别。这是Android中的错误吗?
编辑:
DecimalFormatSymbols decimalFormatSymbols = ((DecimalFormat) numberFormat).getDecimalFormatSymbols();
if ("US".equalsIgnoreCase(locale.getCountry())
&& "es".equalsIgnoreCase(locale.getLanguage())) {
decimalFormatSymbols.setMonetaryDecimalSeparator('.');
decimalFormatSymbols.setGroupingSeparator(',');
}
((DecimalFormat) numberFormat).setDecimalFormatSymbols(decimalFormatSymbols);
这是“修复”它的一种方法,但看起来应该有一种更适合语言环境的方式。
答案 0 :(得分:2)
回答我的问题;是的,这是Android中的已知错误:
https://code.google.com/p/android/issues/detail?id=38844
据说固定在4.2之后,但我们在4.2.2