在jsp中格式化數字(金額),日期,百分號,字串轉數字等
阿新 • • 發佈:2019-01-05
主要是用到jsp的JSTL:fmt標籤
第一步
在jsp頂部引入JSTL:fmt標籤
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
1. 日期格式化
value填入你需要格式化前的時間,pattern是自己定義的格式化後的時間格式
<fmt:formatDate value=“${date}” pattern=“yyyy-MM-dd HH:mm:ss”/>
2.數字格式化
pattern:指定格式化數字的格式
符號代表的意義
0 代表 一個數位
‘#’ 代表 一個數位,前導零和追尾零不顯示
. 代表 小數點分割位置
,代表 組分隔符的位置
%代表 用100乘,並顯示百分號
//型別1
<fmt:formatNumber value="12345" type="currency" pattern="$.00"/> -- $12345.00
//型別2
<fmt:formatNumber value="12345" type="currency" pattern="$.0#"/> -- $12345.0
//型別3
<fmt:formatNumber value="1234567890" type="currency"/> -- $1,234,567,890.00(那個貨幣的符號和當前web伺服器的 local 設定有關)
//型別4
//格式化是預設支援四捨五入的
<fmt:formatNumber value ="1234.7891" pattern="#,#00.0#"/> -- 123,4.79
//型別5
<fmt:formatNumber value="1234.7" pattern="#,#00.0#"/> -- 123,4.7
//型別6
<fmt:formatNumber value="1234.7" pattern="#,#00.00#"/> -- 123,4.70
3.字串轉數字
這個跟JSTL標籤沒關係的
使用之前得判斷是否為空或者null,不然會報
java.lang.NumberFormatException: empty String異常
Double.parseDouble("123456" )
4.百分號格式化
type:指定格式化型別為百分號,(type 可以是currency、 number、 和percent)
maxFractionDigits:指定格式化後儲存的小數位個數
<fmt:formatNumber type="percent" value="1223" maxFractionDigits="2" />
可以結合起來用,比如金額轉化的時候,如果之前儲存的金額是字串,那麼需要轉成數字才能操作,當然不轉也是可以除以100,例子如下:
其中的listItem.TransAtSingleDay是以“分”為單位的字串,現在想格式化為以“元”為單位的,這裡先判斷listItem.TransAtSingleDay,防止出現異常,前面有說明的
//第一中做法:先轉數字,再除以100
<c:if test="${listItem.TransAtSingleDay !=''&& listItem.TransAtSingleDay != null }">
<fmt:formatNumber value="${Double.parseDouble(listItem.TransAtSingleDay)/100}" pattern="#,#00.00#" maxFractionDigits="2"/>
</c:if>
//第二種不轉:
<fmt:formatNumber value="${listItem.TransAtSingleDay/100}" pattern="#,#00.00#" maxFractionDigits="2"/>