<fmt:formatNumber>標籤

JSP 標準標籤庫JSP 標準標籤庫

<fmt:formatNumber>標籤用於格式化數字,百分比,貨幣。

語法格式

<fmt:formatNumber
  value="<string>"
  type="<string>"
  pattern="<string>"
  currencyCode="<string>"
  currencySymbol="<string>"
  groupingUsed="<string>"
  maxIntegerDigits="<string>"
  minIntegerDigits="<string>"
  maxFractionDigits="<string>"
  minFractionDigits="<string>"
  var="<string>"
  scope="<string>"/>

屬性

<fmt:formatNumber>標籤有如下屬性:

屬性 描述 是否必要 默認值
value 要顯示的數字
type NUMBER,CURRENCY,或 PERCENT類型 Number
pattern 指定一個自定義的格式化模式用與輸出
currencyCode 貨幣碼(當type="currency"時) 取決於默認區域
currencySymbol 貨幣符號 (當 type="currency"時) 取決於默認區域
groupingUsed 是否對數字分組 (TRUE 或 FALSE) true
maxIntegerDigits 整型數最大的位數
minIntegerDigits 整型數最小的位數
maxFractionDigits 小數點後最大的位數
minFractionDigits 小數點後最小的位數
var 存儲格式化數字的變數 Print to page
scope var屬性的作用域 page

如果type屬性為percent或number,那麼您就可以使用其他幾個格式化數字屬性。maxIntegerDigits屬性和minIntegerDigits屬性允許您指定整數的長度。若實際數字超過了maxIntegerDigits所指定的最大值,則數字將會被截斷。

有一些屬性允許您指定小數點後的位數。minFractionalDigits屬性和maxFractionalDigits屬性允許您指定小數點後的位數。若實際的數字超出了所指定的範圍,則這個數字會被截斷。

數字分組可以用來在每三個數字中插入一個逗號。groupingIsUsed屬性用來指定是否使用數字分組。當與minIntegerDigits屬性一同使用時,就必須要很小心地來獲取預期的結果了。

您或許會使用pattern屬性。這個屬性可以讓您在對數字編碼時包含指定的字元。接下來的表格中列出了這些字元。

符號 描述
0 代表一位數字
E 使用指數格式
# 代表一位數字,若沒有則顯示 0,前導 0 和追尾 0 不顯示。
. 小數點
, 數字分組分隔符號
; 分隔格式
- 使用默認負數首碼
% 百分數
? 千分數
¤ 貨幣符號,使用實際的貨幣符號代替
X 指定可以作為首碼或尾碼的字元
' 在前綴或尾碼中引用特殊字元


實例演示

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<html>
<head>
  <title>JSTL fmt:formatNumber 標籤</title>
</head>
<body>
<h3>數字格式化:</h3>
<c:set var="balance" value="120000.2309" />
<p>格式化數字 (1): <fmt:formatNumber value="${balance}"
            type="currency"/></p>
<p>格式化數字 (2): <fmt:formatNumber type="number"
            maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化數字 (3): <fmt:formatNumber type="number"
            maxFractionDigits="3" value="${balance}" /></p>
<p>格式化數字 (4): <fmt:formatNumber type="number"
            groupingUsed="false" value="${balance}" /></p>
<p>格式化數字 (5): <fmt:formatNumber type="percent"
            maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化數字 (6): <fmt:formatNumber type="percent"
            minFractionDigits="10" value="${balance}" /></p>
<p>格式化數字 (7): <fmt:formatNumber type="percent"
            maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化數字 (8): <fmt:formatNumber type="number"
            pattern="###.###E0" value="${balance}" /></p>
<p>美元 :
<fmt:setLocale value="en_US"/>
<fmt:formatNumber value="${balance}" type="currency"/></p>
</body>
</html>

運行結果如下:

數字格式化:

格式化數字 (1): ¥120,000.23

格式化數字 (2): 000.231

格式化數字 (3): 120,000.231

格式化數字 (4): 120000.231

格式化數字 (5): 023%

格式化數字 (6): 12,000,023.0900000000%

格式化數字 (7): 023%

格式化數字 (8): 120E3

美元 : $120,000.23

JSP 標準標籤庫JSP 標準標籤庫