BigDecimal根据locale呈现小数点?

时间:2012-02-22 23:24:47

标签: java jsf bigdecimal

与另一个问题有关我发现: 如果我想在JSF中显示两个小数位的BigDecimal.ZERO,那么我必须对我的支持bean中的舍入进行硬编码。因为numberConverter对常量不起作用。

BigDecimal.ZERO.SetScale(2, RoundingMode.HALF_UP); //this works and displays: "0.00"

不幸的是我不能使用依赖于语言环境的小数点显示!在对roundingMode进行硬编码后,我甚至无法使用min / maxFractionDigits更改分数。 <f:convertNumber pattern="..."对显示无效。

这是一个真正的混乱,有人知道如何在JSF中显示BigDecimal时强制执行模式(不是String!当然我可以使用新的DecimalFormat)。

1 个答案:

答案 0 :(得分:0)

如果文本的实际格式很重要 - 例如,您正在处理依赖于语言环境的数据 - 那么您将需要使用格式化程序以特定的“样式”呈现它”。这就是全班的目的。使用setScale()更改了实例可用的数学精度 - 它对文本显示没有任何影响(或者不应该被提供任何影响)。