我在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="noOfPag
<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.
如何在int中转换float或double值而不进行四舍五入?
如果你想将noOfPagesRounded设置为floor(noOfPages),那么尝试这个(在EL中没有楼层功能):<fmt:formatNumber var="noOfPagesFloored" value="${noOfPages-(noOfPages%1)}" maxFractionDigits="0" />