【发布时间】:2018-01-18 23:23:39
【问题描述】:
以下代码用于以适当的货币格式化数字:
public static String getFormattedCurrency(String currencyCode, String currencyName, Number value) {
//....
NumberFormat format = NumberFormat.getCurrencyInstance(Locale.getDefault());
Currency currency = Currency.getInstance(currencyCode);
format.setCurrency(currency);
if (format instanceof DecimalFormat) {
format.setMinimumFractionDigits(CURRENCY_MIN_FRACTION_DIGITS);
}
Log.d("Currency", "Symbol: " + currency.getSymbol() + ", Currency: " + currency + ", Locale: " + local);
return format.format(value);
}
currencyCode 的值是THB,即泰铢。在 Lollipop 上,currency.getSymbol() 返回฿,这是泰铢的符号。但是,在 Oreo 上,同样的方法返回 THB。
为什么在这两个 API 级别之间返回不同的值?
【问题讨论】: