当前位置 : 主页 > 编程语言 > java >

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

来源:互联网 收集:自由互联 发布时间:2021-06-25
我在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
我在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.

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

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

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