Java 使用ISO 4217的货币代码格式化pl_pl价格

Java 使用ISO 4217的货币代码格式化pl_pl价格,java,Java,我需要根据ISO 4217将价格(如BigDecimal)格式化为波兰货币格式。根据我的验收标准,此格式应始终有2位小数 因此,我有pl_pl的Java语言环境对象和ISO 4217中的相关CurrencyUnit 985,我可以在调试器中看到。现在,当我想格式化以下价格时,我遇到了一些问题: 12.34000=>12.34(正常) 12.500=>12.5(不正常,预期为12.50) 12.000=>12(不正常,预期为12.00) 因此,我进行了一些调试,发现Java从类FormatDa

我需要根据ISO 4217将价格(如
BigDecimal
)格式化为波兰货币格式。根据我的验收标准,此格式应始终有2位小数

因此,我有pl_pl的Java语言环境对象和
ISO 4217
中的相关
CurrencyUnit 985
,我可以在调试器中看到。现在,当我想格式化以下价格时,我遇到了一些问题:

  • 12.34000=>12.34(正常)
  • 12.500=>12.5(不正常,预期为12.50)
  • 12.000=>12(不正常,预期为12.00)
因此,我进行了一些调试,发现Java从类
FormatData\u pl.Java
中读取了
pl\u pl
相关定价
DecimalPattern
,其中定义如下:

{ "NumberPatterns",
new String[] {
"#,##0.###;-#,##0.###", // decimal pattern
"#,##0.## \u00A4;-#,##0.## \u00A4", // currency pattern
"#,##0%" // percent pattern
}
},
在这种情况下,将使用上述模式:

NumberFormat format = NumberFormat.getCurrencyInstance(locale);
DecimalFormat decimalFormat = (DecimalFormat) format;
String pattern = getSimplePattern(locale, currency);
decimalFormat.applyPattern(pattern);
return decimalFormat.format(price);
因此,给定的货币模式似乎并不正确。根据
ISO4217
它应该是
“#,##0.00”
,不是吗

我如何处理这个问题