在更新模型阶段,el-1.0中存在一个bug,它使用jsf 1.1将BigDecimal转换为double,然后转换回BigDecimal。这发生在ELSupport.java - > coerceToNumber类中,并在el-impl-2.1.2-b03中修复。最终的结果是,如果用户输入54.93,那么在updateModel阶段出现时,结果为54.92999999 ...。jsf 1.1中的BigDecimal舍入
假设我没有升级到el-2.1.2-b03的选项,但仍然必须保证我的计算的准确性和我发送给后端的内容。什么是最好的四舍五入策略?当我在updateModel阶段在支持bean中调用setter方法时,我正在考虑简单地将scale设置为2,并使用舍入策略ROUND_HALF_EVEN。
有没有更好的解决方案?
尽管您的问题是有效的,但我确实希望补充一点,JSF本身是规范而不是产品。所以JSF(1.1)没有ELSupport.java,但是一个特定的实现(例如Mojarra)可能有。 – 2011-02-13 13:22:39