JSTL/EL中数字的上限

Tin*_*iny 16 jsp jstl el ceil

在JSTL中,

<fmt:formatNumber value="${1.6}" type="number" pattern="#"/>
Run Code Online (Sandbox Code Playgroud)

返回2和以下

<fmt:formatNumber value="${1.4}" type="number" pattern="#"/>
Run Code Online (Sandbox Code Playgroud)

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

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

Bal*_*usC 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="#" />
Run Code Online (Sandbox Code Playgroud)


小智 5

试试这段代码:

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

其中N是变量的名称.

问候