gpt4 book ai didi

java - (荷兰语)区域设置的 NumberFormat 的自定义更改

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:28:45 34 4
gpt4 key购买 nike

我有一个问题。我在应用程序中处理金额,我需要本地化格式。我使用 java.util.Locale 的 NumberFormat.getCurrencyInstance()。在大多数情况下,它看起来很好。但负数是问题所在。荷兰语 nl-NL 语言环境的预定义格式如下所示

€ 200,00-

但是按照荷兰的标准,应该是

€ -200,00

示例是 NumberFormat.getCurrencyInstance(new Locale("nl", "NL")).format(-200)。否则我不想更改格式。

有什么想法吗?

最佳答案

是的,this很好地解释了这个问题(Java 使用的 CLDR 与官方荷兰语推荐之间的差异)。

要使用与 CLDR 不同的格式,您必须自己定义它,对正值使用默认格式,对负数使用不同的格式:

((DecimalFormat)NumberFormat.getCurrencyInstance(new Locale("NL", "nl"))).applyPattern("¤ #,##0.00;¤ -#").format(-200);

(如何分解它,在哪里应用模式等当然取决于您现有的代码)

¤ #,##0.00 是当前默认的正值荷兰语模式,¤ -# 是负值的新模式,意思是“货币符号在前,然后是不间断空格(即 \u00a0,不是常规的 SPC 字符),然后是负号,然后是与正值相同的格式”(; 将正值格式与格式化字符串中的负数)。

关于java - (荷兰语)区域设置的 NumberFormat 的自定义更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17549709/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com