在jsf中以2磅十进制格式显示数字

我正在使用JSF 2和RichFaces 3.在下图所示的数字中,数字显示为数据库中的数字。

在此处输入图像描述

但我想将它们显示为6749395.20如果有分数部分, 5095138.00如果没有分数部分。

截至目前,我尝试过这样的事情。

          

实际上我一起展示了所有这些,但我尝试了所有这些,因为所有可能的typegroupingUsedminFractionDigitspattern

为什么不起作用? 这是怎么造成的,如何解决?

如果值根本不是Number ,则会发生这种情况,例如String 。 然后,您基本上使用了错误的类型来表示它所代表的数据。 要用Java表示货币,您应该使用BigDecimal 。 另外,请确保数据库表中的类型是正确的,即它不应该是varchar,而应该是小数。

一旦修复了数据类型, 就会按照你的要求工作。 请注意, pattern属性将覆盖groupingUsedminFractionDigits 。 您应该使用pattern 其他pattern 。 此外, type="number"已经是默认值,因此可以将其删除。

所以,要么使用

  

要么

  

请注意,它们生成不同的格式。 您可能希望将分组设置为false

你也可以使用type="currency" ,它会根据UIViewRoot#getLocale()自动应用正确的模式:

  

另请参阅标记库文档和DecimalFormat javadoc。