5

我在 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。每页的结果。

这并非一直有效,因为在第 2 行,即formatNumber标签是对我的除法结果的四舍五入,我不想四舍五入。

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

我应该如何在不四舍五入的情况下转换floatdouble估值?int

4

1 回答 1

7

如果您希望将 noOfPagesRounded 设置为 floor(noOfPages) 则试试这个(EL 中没有 floor 函数):

<fmt:formatNumber var="noOfPagesFloored" value="${noOfPages-(noOfPages%1)}"  maxFractionDigits="0" />
于 2012-08-06T14:07:05.707 回答