EL小數保留位元

來源:互聯網
上載者:User

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

<s:if test="#name.equals('最高分')">

    <fmt:formatNumber value="${maxScore }" pattern="#.##" minFractionDigits="2" >

    </fmt:formatNumber>

</s:if>

在網上查了許多資料都說EL運算式無法取整,的確EL運算式除法結果為浮點型。 
例如${8/7} ,${6/7} ,${12/7 } 在頁面的顯示結果分別為: 
1.1428571428571428 
0.8571428571428571 
1.7142857142857142 

現在我的目的是只取前面的整數,此時我用的是EL運算式的<fmt:formatNumber />標籤,例如: 
<fmt:formatNumber type="number" value="${8/7)}" maxFractionDigits="0"/> 
結果為1. 
maxFractionDigits="0"表示保留0位小數,即取整,注意:此時取的整數是四捨五入的。 
如果是${1/7}結果就是0,如果是${6/7}結果就是1,此方法適合想四捨五入取整的。 
當然想保留固定位小數只需將maxFractionDigits="0"中的0做適當修改就可以了,想保留小數點後幾位就改成幾。 

當然也有不四捨五入取整的方法。 
例如: 
<fmt:formatNumber type="number" value="${13-13%7)/7)}"/> 
如果用上面的方法結果為2,此方法結果為1,不同目的分別取之。 
其實就是先得到餘數,將餘數減去再除,這樣結果剛好是整數,也就不存在四捨五入的問題了。因為減去餘數之後,正好整除,經過本人測試加上maxFractionDigits="0"已經不起作用了。 

原文地址:http://hi.baidu.com/qihuitoday/blog/item/db683452da2ae2040cf3e3d7.html/cmtid/d8d9561f559e856ff724e421

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.