<fmt:formatNumber>标签
JSTL <fmt:formatNumber> 标签用于格式化数字、百分比和货币。
其中,
pattern 属性包含的字符说明如下表所示:
页面输出内容如下:
语法
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.biancheng.net)</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>
页面输出内容如下:
¥9,850.14
9,850.141
850.141
9,850.14115
5,014%
9850.141$