Потолок номера в JSTL/EL
В JSTL,
<fmt:formatNumber value="${1.6}" type="number" pattern="#"/>
возвращает 2
и следующий
<fmt:formatNumber value="${1.4}" type="number" pattern="#"/>
возвращает 1
, и мне нужно 2
, потолок числа.
Есть ли прямой способ достичь этого в JSTL (или единственный способ сделать это с помощью соответствующего пользовательского тега)?
Ответы
Ответ 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 - имя вашей переменной.
Привет