Latest web development tutorials

<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
. 小數點
, 數字分組分隔符
; 分隔格式
- 使用默認負數前綴
% 百分數
? 千分數
貨幣符號,使用實際的貨幣符號代替
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標準標籤庫