JSTL <fmt:formatNumber> 标签用于格式化数字、百分比和货币。
JSP <fmt:formatNumber> 标签的语法如下:
- <fmt:formatNumber
- value="numberValue"
- [type="number|percent|currency"]
- [pattern="pattern"]
- [currencyCode="currencyCode"]
- [currencySymbol="currencySymbol"]
- [groupingUsed="true|false"]
- [maxIntegerDigits="maxIntegerDigits"]
- [minIntegerDigits="minIntegerDigits"]
- [maxFractionDigits="maxFractionDigits"]
- [minFractionDigits="minFractionDigits"]
- [var="varname"]
- [scope="page|request|session|application"] />
其中,[ ]中包含的内容为可选项,对上述参数说明如下表所示:
参数 | 说明 |
---|---|
value | 要格式化的数字 |
type | 设置数字的单位,即 number(数字)、currency(货币)、percent(百分数) |
pattern | 设定显示的格式 |
currencyCode | 设置货币码 |
currencySymbol | 设置货币符号 |
groupingUsed | 设置是否对数字分组,默认为 true。 |
maxIntegerDigits | 设置最多的整数位,若设定的数值少于数字的实际位数时,数字的左边位数会截去相应的位数,例如 123456,maxIntegerDigits 设定为 4,则结果为 3456。 |
minIntegerDigits | 设置最少的整数位,若设定的数值多于数字的实际位数时,会在数字的左边补 0,例如 123,minIntegerDigits 设定为 4,则结果为 123.5。 |
maxFractionDigits | 设置最多小数位数,若设定的数值小于数字的实际小数位数,则会从右边删掉多余位数,例如 123.56,minIntegerDigits 设定为 1,则结果为 123.5。 |
minFractionDigits | 设置最少小数位数,若设定的数值大于数字的实际小数位数,则会从右边补 0。例如 123.56,minFractionDigits 设定为 4,则结果为 123.5600。 |
var | 代表格式化后的数字,若设定了该参数,需要 <c:out> 标签输出。 |
scope | 设定参数 var 的有效范围,默认为 page。 |
pattern 属性包含的字符说明如下表所示:
符号 | 描述 |
---|---|
0 | 代表一位数字 |
E | 使用指数格式 |
# | 代表一位数字,若没有则显示 0 |
. | 小数点 |
, | 数字分组分隔符 |
; | 分隔格式 |
- | 使用默认复数前缀 |
% | 百分数 |
? | 千分数 |
¤ | 货币符号,使用实际的货币符号代替 |
X | 指定可以作为前缀和后缀的字符 |
` | 在前缀或后缀中引用特殊字符 |
<fmt:formatNumber> 标签的简单实例如下:
- <%@ 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>
- <html>
- <head>
- <title>城东书院(www.cdsy.xyz)</title>
- </head>
- <body>
- <c:set var="Amount" value="9850.14115" />
- <fmt:formatNumber value="${Amount}" type="currency" />
- <br>
- <br>
- <fmt:formatNumber type="number" groupingUsed="true" value="${Amount}" />
- <br>
- <br>
- <fmt:formatNumber type="number" maxIntegerDigits="3" value="${Amount}" />
- <br>
- <br>
- <fmt:formatNumber type="number" maxFractionDigits="6" value="${Amount}" />
- <br>
- <br>
- <fmt:formatNumber type="percent" maxIntegerDigits="4" value="${Amount}" />
- <br>
- <br>
- <fmt:formatNumber type="number" pattern="###.###$" value="${Amount}" />
- </body>
- </html>
页面输出内容如下: