JSTL之formatNumber取整

EL表達式取整或者取固定位小數 目前最好的方法

在網上查了許多資料都說EL表達式無法取整,的確EL表達式除法結果爲浮點型。
例如${8/7} ,${6/7} ,${12/7 } 在頁面的顯示結果分別爲:
1.1428571428571428
0.8571428571428571
1.7142857142857142

現在我的目的是隻取前面的整數,此時我用的是EL表達式的<fmt:formatNumber />標籤,例如:
<fmt:formatNumber type="number" value="${8/7)}" maxFractionDigits="0"/>
結果爲1.
maxFractionDigits="0"表示保留0位小數,即取整,注意:此時取的整數是四捨五入的。
如果是${1/7}結果就是0,如果是${6/7}結果就是1,此方法適合想四捨五入取整的。
當然想保留固定位小數只需將maxFractionDigits="0"中的0做適當修改就可以了,想保留小數點後幾位就改成幾。

當然也有不四捨五入取整的方法。
例如:
<fmt:formatNumber type="number" value="${13-13%7)/7)}"/>
如果用上面的方法結果爲2,此方法結果爲1,不同目的分別取之。
其實就是先得到餘數,將餘數減去再除,這樣結果剛好是整數,也就不存在四捨五入的問題了。因爲減去餘數之後,正好整除,經過本人測試加上maxFractionDigits="0"已經不起作用了。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章