【发布时间】:2012-12-15 20:10:47
【问题描述】:
我无法很好地显示具有固定位数的p:spinner 数字:
<p:spinner value="#{myBean.myValue}" stepFactor="0.1">
myValue 是双重的。
在第三次向上单击时,显示的数字是 0.30000000000000004 而不是 0.3。我知道这是正常的浮点行为,但我找不到很好地显示数字的方法。
我尝试过使用初始化为“0.0”的BigDecimal 而不是双精度。相同的行为。
最后我尝试了一个默认转换器,假设情况太琐碎,不需要自定义转换器:
<p:spinner value="#{myBean.myValue}" stepFactor="0.1" >
<f:convertNumber maxFractionDigits="1" />
</p:spinner>
同样的效果。
【问题讨论】:
-
p:spinner增加/减少纯粹的客户端(使用 JS),因此任何服务器端尝试修复它都不会产生任何效果。我建议将其作为错误报告给 PF 家伙。 -
@BalusC,感谢您的提示。举报here。
-
我相信问题可以通过微调器中的 maxDecimalNumber='1' 得到缓解(没有真正解决)
-
@skegg99,哪个 PF 版本?我在 3.4 中找不到任何组件的 maxDecimalNumber 属性(这是我正在使用的版本)
-
@perissf 不确定,很长时间没有使用 primefaces。但是这个线程表明这种解决方法可能会有所帮助forum.primefaces.org/viewtopic.php?f=3&t=23616&start=10
标签: jsf primefaces facelets