JSP JSTL <fmt:formatNumber> 标签
JSP 标准标签库(JSTL) <fmt:formatNumber> 标签用于格式化数字,百分比,货币
语法
<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,前导 0 和追尾 0 不显示。 |
. | 小数点 |
, | 数字分组分隔符 |
; | 分隔格式 |
- | 使用默认负数前缀 |
% | 百分数 |
? | 千分数 |
¤ | 货币符号,使用实际的货币符号代替 |
X | 指定可以作为前缀或后缀的字符 |
' | 在前缀或后缀中引用特殊字符 |
范例
webapp/jstl_fmt_formatnumber.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <!DOCTYPE html> <meta charset="utf-8"> <style> table { border-collapse: collapse; } table,th,td {border:1px solid #ddd;} th,td {padding:5px 10px;text-align: left} </style> <title>JSTL <fmt:formatNumber> 标签 - JSP 基础教程 | 简单教程(www.twle.cn)</title> <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> <p>JSTL <fmt:formatNumber> 标签 - JSP 基础教程 | 简单教程(www.twle.cn)</p>
在浏览器上输入 http://localhost:8080/jsp/jstl_fmt_formatnumber.jsp 显示如下