【发布时间】:2011-02-13 02:30:48
【问题描述】:
在 el-1.0 中有一个错误,jsf 1.1 使用该错误将 BigDecimal 转换为 double,然后在更新模型阶段返回 BigDecimal。这发生在 ELSupport.java -> coerceToNumber 类中,并在 el-impl-2.1.2-b03 中得到修复。最终结果是,如果用户输入 54.93,那么当 updateModel 阶段发生时,它会导致 54.92999999...。
假设我没有升级到 el-2.1.2-b03 的选项,但仍必须保证我的计算以及我发送到后端的内容的准确性。最好的舍入策略是什么?每当在 updateModel 阶段在我的支持 bean 中调用 setter 方法时,我正在考虑使用 ROUND_HALF_EVEN 舍入策略简单地将比例设置为 2。
有没有更好的解决方案?
【问题讨论】:
-
虽然您的问题是有效的,但我想补充一点,JSF 本身是一个规范,而不是一个产品。所以 JSF (1.1) 没有 ELSupport.java,但特定的实现(例如 Mojarra)可能有。
标签: java jsf bigdecimal