JSTL / EL中数字的上限

时间:2012-07-31 07:53:55

标签: jsp jstl el ceil ceiling

在JSTL中,

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

返回2和以下

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

返回1,我需要2数字上限

有没有直接的方法在JSTL中实现这一点(或者唯一的方法是使用适当的自定义标记)?

2 个答案:

答案 0 :(得分:21)

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="#" />

答案 1 :(得分:5)

试试这段代码:

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

其中N是变量的名称。

此致