【发布时间】:2012-09-11 12:44:12
【问题描述】:
我正在使用非英语语言环境的设备,英语货币格式如下:
1 美元
如果我有英语语言环境,我会得到欧元货币:
1 欧元
使用
format.setCurrency(Currency.getInstance(currency));
return format.format(amount);
在文档中找到:
http://developer.android.com/reference/java/util/Currency.html#getSymbol()
返回此货币在语言环境中的本地化货币符号。也就是说,给定“USD”和 Locale.US,你会得到“$”,但给定“USD”和非美国语言环境,你会得到“US$”。
如果语言环境只指定一种语言而不是语言和国家(例如 Locale.JAPANESE 或 {new Locale("en", "")} 而不是 Locale.JAPAN 或 {new Locale("en", "US")}),返回 ISO 4217 货币代码。
如果没有特定于区域设置的货币符号,则返回 ISO 4217 货币代码。
不是同一种方法,但可能相关。为什么我的设备语言环境对以货币排序的符号有影响?无论我使用哪种语言环境,1$ 都是不正确的。
有办法改变吗?
【问题讨论】:
-
将货币符号放入您的本地资源 value-eng,values-fra,values-ru
-
在某些语言环境中金额正确后写入货币。例如,瑞典的写作规则建议这样做。
标签: java android format currency