我有一个float
属性绑定到<h:inputText>
。对于长值,它会自动将值转换为指数表示法。我尝试使用<f:convertNumber>
来避免指数值表示。该值可以是下面给出的两个值。
我尝试使用转换器如下:
<f:convertNumber pattern="####.###" />
它适用于长达8位的数字,但在此之后,该值将转换为某个意外值。例如,如果我在文本框中给出值12345678
,则会正确转换。但是如果我给1234567899
,则值会转换为1234567936
。如果给出值1234567899.123
,它仍会转换为1234567936
。
如果有人能够解释这个问题并让我知道我在做什么会很棒。提前谢谢。
答案 0 :(得分:0)
如果您重视精确度,则应使用java.math.BigDecimal
代替float
/ double
/ java.lang.Float
/ java.lang.Double
。