5

JSPでExpressionLanguage(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レコードの場合、1ページあたり20は4ページが必要ですが、結果5が得られます。これは、2行目で結果3.65を4に丸めているためですが、必要ですnoOfPagesRounded=3

四捨五入せずに変換floatまたはdouble評価するにはどうすればよいですか?int

4

1 に答える 1

7

noOfPagesRounded を floor(noOfPages) に設定する場合は、これを試してください (フロア関数は EL では使用できません)。

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