首页 > 编程笔记 > Java笔记

JSP JSTL <fmt:formatNumber>标签:格式化数字

<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"/>

所有教程

优秀文章