如何将表达式语言(EL)的double或float值转换为int而不进行舍入?

时间:2012-08-06 13:06:10

标签: jsp java-ee expression el jsp-tags

我在JSP中使用表达式语言(EL)。

<c:set var="noOfPages" value="${numItems/itemsPerPage}" />

<fmt:formatNumber var="noOfPagesRounded" value="${noOfPages}" maxFractionDigits="0" />

<c:if  test="${(numItems % itemsPerPage) > 0}">
    <c:set var="noOfPages" value="${noOfPagesRounded + 1}"/>
</c:if >

如你所见,我正在计算不。显示x no所需的页面数量每页的结果。

这从第2行开始并不是一直有效,即formatNumber标记是我的除法结果的四舍五入,我不想将其四舍五入。

即。对于73条记录,每页20页需要4页,但我得到结果5,因为在第2行它是结果3.65到4的四舍五入但我想要noOfPagesRounded=3

如何在float中转换doubleint值而不进行四舍五入?

1 个答案:

答案 0 :(得分:7)

如果你想将noOfPagesRounded设置为floor(noOfPages),那么尝试这个(在EL中没有楼层功能):

<fmt:formatNumber var="noOfPagesFloored" value="${noOfPages-(noOfPages%1)}"  maxFractionDigits="0" />