JSP JSTL <fmt:formatNumber>標籤:格式化數位

2020-07-16 10:04:55
<fmt:formatNumber> 標籤用於設定數位在不同國家區域的顯示格式,例如,數位 1000000.9,在中國將使用 1,000,000.9 的格式,而在法國則會使用 1 000 000.9 的數位格式。

語法:

<fmt:formatNumber[type="{number|currency|percent}"]
                       [pattern="customPattern"]
                       [currencyCode="currencyCode"]
                       [currencySymbol="currencySymbol"]
                       [groupingUsed="{true|false}"]
                       [maxIntegerDigits="maxIntegerDigits"]
                       [minIntegerDigits="minIntegerDigits"]
                       [maxFractionDigits="maxFractionDigits"]
                       [minFractionDigits="minFractionDigits"]
                       [var="varName"]
                       [scope="{page|request|session|application}"]>
  numeric value to be formatted
</fmt:formatNumber>


<fmt:formatNumber> 標籤各屬性的詳細介紹如表所示。

<fmt:formatNumber>標籤屬性
屬性 型別 描述 參照 EL
value String,Number 被格式化的數位 可以
type String 數位格式的表現型別,可以選擇貨幣、百分比和數位型別。下表介紹 可以
pattern String 模式字串 可以
currencyCode String 貨幣單位程式碼 可以
currencySymbol String 貨幣符號 可以
groupingUsed boolean 是否對格式化數位的整數部分分組,例如:123,456,789.001 可以
maxIntegerDigits int 數位格式化後的最大整數位數 可以
minIntegerDigits int 數位格式化後的最小整數位數 可以
maxFractionDigits int 數位格式化後的最大小數位數 可以
minFractionDigits int 數位格式化後的最小小數位數 可以
var String 儲存格式化後的數位格式 不可以
scope String 變數的作用範圍 不可以

type屬性的型別
型別 說明 範例
number 數位格式 6.7
currency 貨幣格式 ¥6.70
percent 百分比格式 670%

範例1

應用 <fmt:formatNumber> 標籤將數位 7.17 分別以數位、貨幣和百分比格式輸出,關鍵程式碼如下:
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  <fmt:formatNumber value="7.17" type="number"/><!--顯示7.17-->
  <br>
  <fmt:formatNumber value="7.17" type="percent"/><!--顯示7.17-->
  <br>
  <fmt:formatNumber value="7.17" type="currency"/><!--顯示¥7.17-->

範例2

本範例應用 <fmt:formatNumber> 標籤設定其 type 屬性的不同值,實現對含有小數的數值進行格式化和對貨幣幣種的不同顯示,關鍵程式碼如下:
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  <!--顯示314,159.26-->
  <fmt:formatNumber value="314159.26" groupingUsed="true"/>
  <!--顯示0457.17-->
  <fmt:formatNumber value="70457.17" maxIntegerDigits="4"/>
  <!--顯示0,007.17-->
  <fmt:formatNumber value="7.17" minIntegerDigits="4" groupingUsed="true"/>
  <!--顯示$7.17-->
  <fmt:formatNumber value="7.17" currencySymbol="$" type="currency"/>
  <!--顯示3.14-->
  <fmt:formatNumber value="3.14159" maxFractionDigits="2"/>
  <!--顯示3.15-->
  <fmt:formatNumber value="3.14559" maxFractionDigits="2"/>

範例3

本範例應用 <fmt:formatNumber> 標籤將圓周率顯示為科學計數法的模式,關鍵程式碼如下:
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  <!--顯示3.142E-1-->
  <fmt:formatNumber value="0.31415926535897" pattern="0.###E0"/>
  <!--顯示31.416E-2-->
  <fmt:formatNumber value="0.31415926535897" pattern="00.###E0"/>
  <!--顯示3.142E13-->
  <fmt:formatNumber value="31415926535897" pattern="0.###E0"/>