首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >icu4j返回货币代码而不是符号

icu4j返回货币代码而不是符号
EN

Stack Overflow用户
提问于 2016-03-25 21:09:15
回答 1查看 642关注 0票数 1

背景

我有一个Android应用程序,根据ISO代码和当前区域设置,我希望将整数值格式化为货币字符串。我用的是ICU图书馆1.8.1。

例如,如果我有一个值75,而ISO代码是“美元”,我想看到"$75“在美国地区,但"USD75”在法国地区。

问题

问题是,即使当我显式地将地区设置为US时,我也总是看到"USD75“。我认为问题出在我的NumberFormat货币实例中,但后来我尝试简单地获取货币符号,并注意到它是不正确的。由于某些原因,getSymbol()方法总是返回货币代码。

代码语言:javascript
复制
public void test() {
    Locale.setDefault(Locale.US);
    String theISOCode = "USD"
    Currency currency = Currency.getInstance(theISOCode);

    currency.getCurrencyCode(); // "USD". This works as expected
    currency.getSymbol(); // "USD". This looks weird.. Shouldn't it be "$"?
    currency.getSymbol(Locale.US); // "USD". Same here, I expect it to be "$"
    currency.getSymbol(ULocale.US); // still "USD"
}

我还检查了这个链接:Java: Currency symbol based on ISO 4217 currency cod。看来我的应用程序的工作方式有点不同。不确定是不是图书馆里的一个bug。

问题

如果您的区域设置为currency.getSymbol(),那么Locale.FRANCE返回“美元”对我来说是有意义的。但是当我的语言环境是Locale.US时,它为什么返回“美元”呢?如果我能在不切换库的情况下找到解决方案,那就太好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-19 08:04:45

事实证明,这个问题是图书馆里的一个bug。更新版本后,问题得到了解决。谢谢@Omid对此进行调查。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36228069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档