【问题标题】:How to convert in Expression Language (EL) double or float value to int without round-off?如何在没有四舍五入的情况下将表达式语言 (EL) 的 double 或 float 值转换为 int?
【发布时间】:2012-08-03 11:04:09
【问题描述】:

我在 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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-13
      • 1970-01-01
      • 1970-01-01
      • 2011-02-08
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 2017-03-04
      相关资源
      最近更新 更多