在JSTL一些,天花板在JSTL/EL
<fmt:formatNumber value="${1.6}" type="number" pattern="#"/>
返回2
和以下
<fmt:formatNumber value="${1.4}" type="number" pattern="#"/>
返回1
,我需要2
,若干的天花板。
是否有直接的方式來實現這個JSTL(或唯一的方法是通過使用適當的自定義標籤)?
在JSTL一些,天花板在JSTL/EL
<fmt:formatNumber value="${1.6}" type="number" pattern="#"/>
返回2
和以下
<fmt:formatNumber value="${1.4}" type="number" pattern="#"/>
返回1
,我需要2
,若干的天花板。
是否有直接的方式來實現這個JSTL(或唯一的方法是通過使用適當的自定義標籤)?
默認的舍入的DecimalFormat
模式所使用的<fmt:formatNumber>
是RoundingMode.HALF_EVEN
。沒有辦法通過任何標籤屬性來改變它。只需將0.5
添加到不是奇數的整數值就可以使其表現得像RoundingMode.CEILING
一樣。
<fmt:formatNumber value="${bean.number + (bean.number % 1 == 0 ? 0 : 0.5)}"
type="number" pattern="#" />
試試這個代碼:
<fmt:formatNumber value="${N+(1-(N%1))%1}" type="number" pattern="#"/>
其中N是你的變量的名稱。
問候
這種方法的好處在於,只需將其更改爲'$ {N-(1-(N%1))%1}',就可以輕鬆將其變爲樓層舍入。 – AxeEffect 2014-02-06 16:49:24
你不是指$ {N-(N%1)} @AxeEffect嗎? – kacpr 2016-07-12 15:14:44