16

在 JSTL 中,

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

返回2和以下

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

回报1,我需要2一个数字的上限

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

4

2 回答 2

21

使用的默认舍入模式DecimalFormat是。没有办法通过任何标签属性来改变它。当它不是奇数时,只需添加该值即可使其表现得像.<fmt:formatNumber>RoundingMode.HALF_EVEN0.5RoundingMode.CEILING

<fmt:formatNumber value="${bean.number + (bean.number % 1 == 0 ? 0 : 0.5)}" 
    type="number" pattern="#" />
于 2012-07-31T14:21:56.657 回答
5

试试这个代码:

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

其中 N 是变量的名称。

问候

于 2012-07-31T08:03:26.737 回答