JSP JSTL <fmt:parseNumber>標籤:轉換為數位

2020-07-16 10:04:56
<fmt:parseNumber> 標籤可以把字串型別的數位解析成數位型別的數值,使其可以組合算術運算形成其他數值結果。

語法1

<fmt:parseNumber value="numericValue"
  [type="{number|currency|percent}"]
  [pattern="customPattern"]
  [parseLocale="parseLocale"]
  [integerOnly="{true|false}"]
  [var="varName"]
  [scope="{page|request|session|application}"]/>

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

<fmt:parseNumber>標籤屬性
屬性 型別 描述 參照 EL
value String,Number 被解析的字串 可以
type String 數位格式的表現型別,可以選擇貨幣、百分比和數位型別 可以
pattern String 模式字串 可以
parseLocale String,java.util.Locale 指定不同的國家區域 可以
var String 儲存格式化後的數位格式 不可以
scope String 變數的作用範圍 不可以
integetOnly boolean 是否只顯示整數部分 可以


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

範例

應用 <fmt:parseNumber> 標籤將百分比格式、貨幣格式和數位格式的字元解析成數位型別,並進行算術運算,關鍵程式碼如下:
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
  <fmt:parseNumber value="25%" var="num" type="percent"/>
  ${num*3}
  <!--顯示0.75-->
  <br>
  <fmt:parseNumber value="¥3.14" var="num" type="currency"/>
  ${num*3}
  <!--顯示9.42-->
  <fmt:parseNumber value="80,000" var="num"/>
  ${num+100}
  <!--顯示80100-->

語法2

<fmt:parseNumber[type="{number|currency|percent}"]
                      [pattern="customPattern"]
                      [parseLocale="parseLocale"]
                      [integerOnly="{true|false}"]
                      [var="varName"]
                      [scope="{page|request|session|application}"]>
  numeric value to be parsed
  </fmt:parseNumber>

範例

本範例應用 <fmt:parseNumber> 標籤,將圓周率以科學計數法的方式把字串解析成數位型別,並進行算術運算,關鍵程式碼如下:
<fmt:parseNumber value="3.142E6" var="num" pattern="0.###E0"/>
  ${num*2}
<!--顯示6284000-->
<fmt:parseNumber value="31.416E-2" var="num" pattern="00.###E0"/>
  ${num*2}
<!--顯示0.62832-->

範例2

本範例應用 <fmt:parseNumber> 標籤的 integerOnly 屬性,將資料的小數部分去掉,僅顯示整數部分,關鍵程式碼如下:
<fmt:parseNumber value="200,233.56" var="num" integerOnly="true"/>
  ${num}
<!--顯示200233-->
<fmt:parseNumber value="200,233.56" var="num" integerOnly="false"/>
  ${num}
<!--顯示200233.56-->