【问题标题】:getSymbol() in java.util.Currency returns different values depending on API leveljava.util.Currency 中的 getSymbol() 根据 API 级别返回不同的值
【发布时间】: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 级别之间返回不同的值?

【问题讨论】:

    标签: java android currency


    【解决方案1】:

    根据this issue,它似乎是a Unicode decision

    【讨论】:

      猜你喜欢
      • 2010-09-16
      • 1970-01-01
      • 2022-11-27
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      • 2017-11-30
      • 1970-01-01
      相关资源
      最近更新 更多