java 货币符号,java – Android货币符号排序

我正在使用非英语语言环境的设备,英语货币形成如下:

1美元

如果我有英语语言环境,我会得到欧元货币:

1欧元

运用

format.setCurrency(Currency.getInstance(currency));

return format.format(amount);

在文档中找到:

Returns the localized currency symbol for this currency in locale. That is, given “USD” and Locale.US, you’d get “$”, but given “USD” and a non-US locale, you’d get “US$”.

If the locale only specifies a language rather than a language and a country (such as Locale.JAPANESE or {new Locale(“en”, “”)} rather than Locale.JAPAN or {new Locale(“en”, “US”)}), the ISO 4217 currency code is returned.

If there is no locale-specific currency symbol, the ISO 4217 currency code is returned.

是不一样的方法,但可能相关.为什么它会使我的设备的区域设置与货币中的符号排序有所区别?无论我使用哪种语言环境,1 $都是不正确的.

有没有办法改变这个?

解决方法:

该方法的行为是正确的.

并非所有国家都希望货币符号在金额之前.

如果您始终希望货币格式与美国期望值匹配,请将区域设置保留为Locale.US.如果您希望货币以本地化方式显示,请保持实施不变.

请参阅此简要指南(来自Microsoft,不能少):

我想你可能想要实现的是以适合其语言环境的格式显示货币?如果是这种情况,只需在调用方法之前将区域设置与您正在使用的货币相匹配.

请注意,格式甚至可以在同一个国家/地区有所不同.在加拿大,看到说英语的人使用50.00美元的格式是相当普遍的,而法裔加拿大人可能使用50,00美元.

另见UX上的这个问题:

标签:java,android,format,currency

来源: https://codeday.me/bug/20190704/1374099.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值