在JSTL中将除以零

哈夫萨·阿卜杜勒·加福尔

我正在尝试使用catch块通过以下jstl循环将除以零,但是我从未使用过'不适用',而是抛出了'?%'。我得到正确显示的“成绩”。如何显示“不适用”而不是“%?”?

  <td style="text-align: center;">
    <c:set var="grade" value="${(G / (G + L + W + D + A + pc + dc + vc) * 100)}"/>
      <c:catch>
      <fmt:formatNumber value="${grade}" pattern="0" var="myInteger"/>
      <c:set var="passed" value="${myInteger - grade eq 0}"/>
      </c:catch>

       <c:if test="${passed}">
       <fmt:formatNumber minFractionDigits="2" maxFractionDigits="2"
                                          value="${grade}" />% 
       </c:if>

       <c:if test="${not passed}">
                        Not applicable
                    </c:if>
                </td>
            </tr>
        </c:forEach>
阿米特·巴蒂(Amit Bhati)

您引发Arithematic Exception的语句不在JSTL的catch块内(即,如下所示的使用逻辑):

  <c:catch var="errorOccurred">
  <c:set var="grade" value="${(G / (G + L + W + D + A + pc + dc + vc) * 100)}"/>
  </c:catch>

 <c:choose>
 <c:when test="${errorOccurred != null}"> 
    Not applicable
</c:when> 
<c:otherwise> 
 <fmt:formatNumber value="${grade}" pattern="0" var="myInteger"/>
 <c:set var="passed" value="${myInteger - grade eq 0}"/>
    <c:choose>
        <c:when test="${passed}"> 
            <fmt:formatNumber minFractionDigits="2" maxFractionDigits="2"
                                      value="${grade}" />% 
        </c:when> 
        <c:otherwise> 
         Not applicable  
        </c:otherwise>
    </c:choose>
    </c:otherwise> 
    </c:choose>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章