Потолок номера в JSTL/EL - программирование
Подтвердить что ты не робот

Потолок номера в JSTL/EL

В JSTL,

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

возвращает 2 и следующий

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

возвращает 1, и мне нужно 2, потолок числа.

Есть ли прямой способ достичь этого в JSTL (или единственный способ сделать это с помощью соответствующего пользовательского тега)?

4b9b3361

Ответ 1

Режим округления по умолчанию 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="#" />

Ответ 2

Попробуйте этот код:

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

где N - имя вашей переменной.

Привет