在更新模型階段,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