jstl <fmt:formatNumber>標籤

2019-10-16 22:12:06

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

屬性

<fmt:formatNumber>標籤具有以下屬性 -

屬性 描述 必需 預設
value 要顯示的數值 None
type NUMBER, CURRENCYPERCENT Number
pattern 為輸出指定自定義格式設定模式。 None
currencyCode 貨幣程式碼(type ="currency") 從預設語言環境
currencySymbol 貨幣符號(type ="currency") 從預設語言環境
groupingUsed 是否分組數位值(TRUEFALSE) true
maxIntegerDigits 要列印的最大整數位數 None
minIntegerDigits 要列印的最小整數位數 None
maxFractionDigits 要列印的小數位數的最大數量 None
minFractionDigits 要列印的小數位數的最小數量 None
var 用於儲存格式化數位的變數的名稱 在頁面內列印
scope 儲存格式化數位的變數範圍
  • 如果type屬性為百分比或數位,則可以使用多個數位格式屬性。maxIntegerDigitsminIntegerDigits屬性允許您指定數位的非分數部分的大小。如果實際數位超過maxIntegerDigits,則數位將被截斷。

  • 還提供了屬性以允許您確定應使用多少個小數位。 minFractionalDigitsmaxFractionalDigits屬性允許您指定小數位數。如果數位超過了小數位數的最大數位,則數位將被四捨五入。

  • 分組可用於在千位組之間插入逗號。 通過將groupingIsUsed屬性設定為truefalse來指定分組。 當與minIntegerDigits一起使用分組時,必須小心獲取預期的結果。

  • 可以選擇使用pattern屬性。 此屬性允許您包含指定您的編號編碼的特殊字元。下表列出了程式碼。

編號 符號 描述
1 0 表示一個數位。
2 E 以指數形式表示。
3 # 代表數位; 顯示0為不使用。
4 . 作為小數分隔符的預留位置。
5 , 作為分組分隔符的預留位置。
6 ; 分隔格式
7 - 用作預設負值的字首。
8 % 乘以100並顯示百分比。
9 ? 乘以1000,按照千分顯示。
10 ¤ 代表貨幣符號; 取而代之的是實際貨幣的符號。
11 X 表示可以在字首或字尾中使用任何其他字元。
12 ' 用於參照字首或字尾中的特殊字元。

範例

檔案:fmt_formatNumber.jsp -

<%@ 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"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>fmt:formatNumber範例</title>
</head>
<body>
    <div style="margin: auto; width: 80%">
        <h3>Number Format:</h3>
        <c:set var="balance" value="120000.2309" />

        <p>
            Formatted Number (1):
            <fmt:formatNumber value="${balance}" type="currency" />
        </p>

        <p>
            Formatted Number (2):
            <fmt:formatNumber type="number" maxIntegerDigits="3"
                value="${balance}" />
        </p>

        <p>
            Formatted Number (3):
            <fmt:formatNumber type="number" maxFractionDigits="3"
                value="${balance}" />
        </p>

        <p>
            Formatted Number (4):
            <fmt:formatNumber type="number" groupingUsed="false"
                value="${balance}" />
        </p>

        <p>
            Formatted Number (5):
            <fmt:formatNumber type="percent" maxIntegerDigits="3"
                value="${balance}" />
        </p>

        <p>
            Formatted Number (6):
            <fmt:formatNumber type="percent" minFractionDigits="10"
                value="${balance}" />
        </p>

        <p>
            Formatted Number (7):
            <fmt:formatNumber type="percent" maxIntegerDigits="3"
                value="${balance}" />
        </p>

        <p>
            Formatted Number (8):
            <fmt:formatNumber type="number" pattern="###.###E0"
                value="${balance}" />
        </p>

        <p>
            Currency in USA :
            <fmt:setLocale value="en_US" />
            <fmt:formatNumber value="${balance}" type="currency" />
        </p>
    </div>

</body>
</html>

這將產生以下結果 -

Number Format:

Formatted Number (1): ¤ 120,000.23 

Formatted Number (2): 000.231 

Formatted Number (3): 120,000.231 

Formatted Number (4): 120000.231 

Formatted Number (5): 023% 

Formatted Number (6): 12,000,023.0900000000% 

Formatted Number (7): 023% 

Formatted Number (8): 120E3 

Currency in USA : $120,000.23