我NumberFormat.getCurrencyInstance().format(amount)用来将货币从BigDecimal格式化为字符串.这正如预期的那样,问题是我们的主要目标是荷兰市场,默认的荷兰格式很奇怪.
让我解释一下,当格式化-125时,我得到荷兰语"€125-"(预计为" - 125欧元").英国按预期工作" - 125.50英镑".
我可以检查语言环境是否是荷兰语,然后每次我想格式化小数时提供一个模式.但我更喜欢一种覆盖荷兰语格式设置的解决方案.我在考虑以下内容:
Locale nlLocale = new Locale("nl", "NL");
NumberFormat.getCurrencyInstance(new Locale("nl", "NL")).setFormatPattern("€ #");
Run Code Online (Sandbox Code Playgroud)
因此,每次我在格式化时使用荷兰语语言环境时,我都会获得自定义格式.是否存在类似的解决方案?
撇开该特定格式是否“正确”的问题不谈,更改“nl”区域设置的货币实例的方法是实现和配置LocaleServiceProvider数字格式服务的自定义。(提供程序类需要子类化NumberFormatProvider,但超类 javadoc 解释了如何配置提供程序。)
对于您所关心的特定情况,提供程序需要返回一个非标准NumberFormat实例,但在其他情况下(可能)委托给默认提供程序。
| 归档时间: |
|
| 查看次数: |
1855 次 |
| 最近记录: |