在jsf中以2磅十进制格式显示数字
我正在使用JSF 2和RichFaces 3.在下图所示的数字中,数字显示为数据库中的数字。
但我想将它们显示为6749395.20
如果有分数部分, 5095138.00
如果没有分数部分。
截至目前,我尝试过这样的事情。
实际上我一起展示了所有这些,但我尝试了所有这些,因为所有可能的type
, groupingUsed
, minFractionDigits
和pattern
。
为什么不起作用? 这是怎么造成的,如何解决?
如果值根本不是Number
,则会发生这种情况,例如String
。 然后,您基本上使用了错误的类型来表示它所代表的数据。 要用Java表示货币,您应该使用BigDecimal
。 另外,请确保数据库表中的类型是正确的,即它不应该是varchar,而应该是小数。
一旦修复了数据类型,
就会按照你的要求工作。 请注意, pattern
属性将覆盖groupingUsed
和minFractionDigits
。 您应该使用pattern
或其他pattern
。 此外, type="number"
已经是默认值,因此可以将其删除。
所以,要么使用
要么
请注意,它们生成不同的格式。 您可能希望将分组设置为false
。
你也可以使用type="currency"
,它会根据UIViewRoot#getLocale()
自动应用正确的模式:
另请参阅标记库文档和DecimalFormat
javadoc。