在jsp中,我有这个部分,并且工作正常。
<c:forEach var="info" items="${infoList}" >
<tr>
<td>${info.key} </td>
<td>${info.total}</td>
<td>${info.delay}</td>
</tr>
</c:forEach>这里,infoList来自struts动作类,它是类Info的ArrayList
public class Info{
private String key;
private String total;
private String delay
}现在,我需要添加另一个<td>,它将打印像${info.delay}*100/${info.total}那样计算出来的百分比,但是在十进制之后打印精确的两位数。
我试过这个
${ info.totalDelay*100/info.totalShipment } 打印百分比,但不能限制为2位数。在java中我可以使用
NumberFormat formatter = new DecimalFormat("#0.00");但是我怎么做呢?我在这里是因为在<% %> (jap tag)里我不能使用${}
我可以访问<% %> formatter .format() 中的变量,或者如何在 <c:> 标记中使用
发布于 2014-08-31 13:39:52
使用JSTL 格式编号
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:formatNumber type="number" minFractionDigits="2" maxFractionDigits="2" value="${ info.totalDelay*100/info.totalShipment } " />发布于 2014-08-31 12:10:41
嗯,我想出来了
在最上面我这样做了:
<%
NumberFormat numberFormat=new DecimalFormat("#.##");
%>我--我--我做了这件事:
<td>
<c:set var="tl" value="${info.total}"></c:set>
<c:set var="dl" value="${info.delay}"></c:set>
<jsp:useBean id="tl" class="java.lang.String"/>
<jsp:useBean id="dl" class="java.lang.String"/>
<%
out.println(numberFormat.format(Double.parseDouble(dl)*100/Integer.parseInt(tl)));
%>
</td>https://stackoverflow.com/questions/25591194
复制相似问题