<fmt:formatNumber>
《fmt:formatNumber》标记用于格式化numbers, percentages,和currencies 。
属性 (Attribute)
《fmt:formatNumber》标记具有以下属性 -
属性 | 描述 | 需要 | 默认 |
---|---|---|---|
Value | 要显示的数值 | Yes | None |
type | NUMBER,CURRENCY或PERCENT | No | Number |
pattern | 为输出指定自定义格式设置模式。 | No | None |
currencyCode | 货币代码(类型=“货币”) | No | 从默认语言环境 |
currencySymbol | 货币符号(类型=“货币”) | No | 从默认语言环境 |
groupingUsed | 是否分组编号(TRUE或FALSE) | No | true |
maxIntegerDigits | 要打印的最大整数位数 | No | None |
minIntegerDigits | 要打印的最小整数位数 | No | None |
maxFractionDigits | 要打印的最大小数位数 | No | None |
minFractionDigits | 要打印的最小小数位数 | No | None |
var | 用于存储格式化数字的变量的名称 | No | 打印到页面 |
scope | 用于存储格式化数字的变量的范围 | No | page |
如果type属性是百分比或数字,则可以使用多个数字格式属性。 maxIntegerDigits和minIntegerDigits属性允许您指定数字的非分数部分的大小。 如果实际数字超过maxIntegerDigits ,则数字将被截断。
还提供了属性以允许您确定应使用多少小数位。 minFractionalDigits和maxFractionalDigits属性允许您指定小数位数。 如果数字超过最大小数位数,则数字将被舍入。
分组可用于在数千个组之间插入逗号。 通过将groupingIsUsed属性设置为true或false来指定groupingIsUsed 。 使用minIntegerDigits分组时,必须小心获得预期结果。
您可以选择使用模式属性。 此属性允许您包含指定数字编码方式的特殊字符。 下表列出了代码。
S.No. | 符号和描述 |
---|---|
1 | 0 代表一个数字。 |
2 | E 以指数形式表示。 |
3 | # 代表一个数字; 显示0表示不存在。 |
4 | . 用作小数分隔符的占位符。 |
5 | , 用作分组分隔符的占位符。 |
6 | ; 分开格式。 |
7 | - 用作默认的否定前缀。 |
8 | % 乘以100并显示为百分比。 |
9 | ? 乘以1000并按照mille显示。 |
10 | ¤ 代表货币符号; 由行动货币符号取代。 |
11 | X 表示可以在前缀或后缀中使用任何其他字符。 |
12 | ' 用于引用前缀或后缀中的特殊字符。 |
例子 (Example)
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>JSTL fmt:formatNumber Tag</title>
</head>
<body>
<h3>Number Format:</h3>
<c:set var = "balance" value = "120000.2309" />
<p>Formatted Number (1): <fmt:formatNumber value = "${balance}"
type = "currency"/></p>
<p>Formatted Number (2): <fmt:formatNumber type = "number"
maxIntegerDigits = "3" value = "${balance}" /></p>
<p>Formatted Number (3): <fmt:formatNumber type = "number"
maxFractionDigits = "3" value = "${balance}" /></p>
<p>Formatted Number (4): <fmt:formatNumber type = "number"
groupingUsed = "false" value = "${balance}" /></p>
<p>Formatted Number (5): <fmt:formatNumber type = "percent"
maxIntegerDigits="3" value = "${balance}" /></p>
<p>Formatted Number (6): <fmt:formatNumber type = "percent"
minFractionDigits = "10" value = "${balance}" /></p>
<p>Formatted Number (7): <fmt:formatNumber type = "percent"
maxIntegerDigits = "3" value = "${balance}" /></p>
<p>Formatted Number (8): <fmt:formatNumber type = "number"
pattern = "###.###E0" value = "${balance}" /></p>
<p>Currency in USA :
<fmt:setLocale value = "en_US"/>
<fmt:formatNumber value = "${balance}" type = "currency"/>
</p>
</body>
</html>
上面的代码将生成以下结果 -
<h3>Number Format:</h3>
<p>Formatted Number (1): £120,000.23</p>
<p>Formatted Number (2): 000.231</p>
<p>Formatted Number (3): 120,000.231</p>
<p>Formatted Number (4): 120000.231</p>
<p>Formatted Number (5): 023%</p>
<p>Formatted Number (6): 12,000,023.0900000000%</p>
<p>Formatted Number (7): 023%</p>
<p>Formatted Number (8): 120E3</p>
<p>Currency in USA : $120,000.23</p>