web-dev-qa-db-ja.com

JSTL / ELの番号の上限

JSTLでは、

<fmt:formatNumber value="${1.6}" type="number" pattern="#"/>

2と以下を返します

<fmt:formatNumber value="${1.4}" type="number" pattern="#"/>

returns1そして私は2数の上限が必要です。

JSTLでこれを実現する直接的な方法はありますか(または、適切なカスタムタグを使用することが唯一の方法です)?

16
Tiny

<fmt:formatNumber> によって使用される DecimalFormat のデフォルトの丸めモードは RoundingMode.HALF_EVEN です。タグ属性を介してこれを変更する方法はありません。奇数の整数でない場合は、値に0.5を追加するだけで、 RoundingMode.CEILING のように動作します。

<fmt:formatNumber value="${bean.number + (bean.number % 1 == 0 ? 0 : 0.5)}" 
    type="number" pattern="#" />
21
BalusC

このコードを試してください:

<fmt:formatNumber value="${N+(1-(N%1))%1}" type="number" pattern="#"/>

ここで、Nは変数の名前です。

よろしく

5
esmoreno