日期:2014-05-20  浏览次数:20651 次

${1/3}怎么限制小数点的位数
<logic:iterate id="flag" name="list">
  <tr>
  <td align="center">[<bean:write name="flag" property="kid"/>]</td>
  <td align="center"><bean:write name="flag" property="kname"/></td>
  <td align="left">投票率:${flag.kcount/sessionScope.totalCount*100 }%[得:<bean:write name="flag" property="kcount"/>票 共:${sessionScope.totalCount }]</td>
  <td align="center" width="50"><a href="update.jsp?kid=<bean:write name="flag" property="kid"/>&kname=<bean:write name="flag" property="kname"/>&kcount=<bean:write name="flag" property="kcount"/>">[修改]</a></td><td align="center" width="50"><a href="delObject.do?operate=doDel&kid=<bean:write name="flag" property="kid"/>">[删除]</a></td>
  </tr>
  </logic:iterate>

------解决方案--------------------
<bean:write>标签本身可以格式化,但功能有限。

建议使用JSTL,很方便的。
比如你想让你的投票率用百分数的形式显示,则:
<fmt:formatNumber type="percent" value="${flag.kcount/sessionScope.totalCount }" />
就搞定啦。注意value中的EL中既不需要*100,也不需要你再指定“%”,方便吧?呵呵。
------解决方案--------------------
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
...
<fmt:formatNumber value="${flag.kcount/sessionScope.totalCount*100}" pattern="0.00"/>
------解决方案--------------------
2楼的回答弥补了我的缺漏。

看完楼主的代码之后,知道楼主是想格式化成百分数,结果就只回答了百分数的格式化方式。
如果你其它地方,需要单纯地对小数位数进行限制,就可以采用
<fmt:formatNumber value="${flag.kcount/sessionScope.totalCount*100}" pattern="0.00"/>
这种方式。其中,pattern="0.00" 就意味着小数部分最多两位。
如想知道更多的pattern的写法,请参考Java API中java.text.DecimalFormat类的文档。