在初始化货币时,我设置了区域设置和 locale.US 货币.getInstance(Locale.US),但是 getSymbol() 在不同的设备上给出了“US$”和“$。getSymbol() 在三星上给出了“$”,但给出了“US” $”在moto上。如何解决这个问题。
2 回答
PIPIONE
TA贡献1829条经验 获得超9个赞
来自 javadocCurrency.getSymbol()
获取默认区域设置的该货币的符号
DISPLAY
。例如,对于美元,如果默认区域设置是 US,则符号为“$”,而对于其他区域设置,符号可能为“US$”。如果无法确定符号,则返回 ISO 4217 货币代码。如果默认
DISPLAY
区域设置包含“rg”(区域覆盖)Unicode 扩展,则从此方法返回的符号反映使用该扩展指定的值。这相当于调用
getSymbol(Locale.getDefault(Locale.Category.DISPLAY))
.
这描述了为什么您有时看到“US$”而有时只看到“$”的原因。
如果您想获得可重复的结果,请使用
Currency.getInstance(Locale.US).getSymbol(Locale.US).
呼唤远方
TA贡献1856条经验 获得超11个赞
在科特林中 -
android.icu.util.Currency.getInstance("currency_code").getName(Locale.getDefault(),android.icu.util.Currency.NARROW_SYMBOL_NAME,null)
https://developer.android.com/reference/kotlin/android/icu/util/Currency#narrow_symbol_name
https://developer.android.com/reference/kotlin/android/icu/util/Currency#getname
添加回答
举报
0/150
提交
取消