jstl <fmt:formatNumber>标签

<fmt:formatNumber>标签用于格式化数字,百分比和货币。

属性

<fmt:formatNumber>标签具有以下属性 -

属性 描述 必需 默认
value 要显示的数值 None
type NUMBER, CURRENCYPERCENT Number
pattern 为输出指定自定义格式设置模式。 None
currencyCode 货币代码(type ="currency") 从默认语言环境
currencySymbol 货币符号(type ="currency") 从默认语言环境
groupingUsed 是否分组数字值(TRUEFALSE) true
maxIntegerDigits 要打印的最大整数位数 None
minIntegerDigits 要打印的最小整数位数 None
maxFractionDigits 要打印的小数位数的最大数量 None
minFractionDigits 要打印的小数位数的最小数量 None
var 用于存储格式化数字的变量的名称 在页面内打印
scope 存储格式化数字的变量范围
  • 如果type属性为百分比或数字,则可以使用多个数字格式属性。maxIntegerDigitsminIntegerDigits属性允许您指定数字的非分数部分的大小。如果实际数字超过maxIntegerDigits,则数字将被截断。

  • 还提供了属性以允许您确定应使用多少个小数位。 minFractionalDigitsmaxFractionalDigits属性允许您指定小数位数。如果数字超过了小数位数的最大数字,则数字将被四舍五入。

  • 分组可用于在千位组之间插入逗号。 通过将groupingIsUsed属性设置为truefalse来指定分组。 当与minIntegerDigits一起使用分组时,必须小心获取预期的结果。

  • 可以选择使用pattern属性。 此属性允许您包含指定您的编号编码的特殊字符。下表列出了代码。

编号 符号 描述
1 0 表示一个数字。
2 E 以指数形式表示。
3 # 代表数字; 显示0为不使用。
4 . 作为小数分隔符的占位符。
5 , 作为分组分隔符的占位符。
6 ; 分隔格式
7 - 用作默认负值的前缀。
8 % 乘以100并显示百分比。
9 ? 乘以1000,按照千分显示。
10 ¤ 代表货币符号; 取而代之的是实际货币的符号。
11 X 表示可以在前缀或后缀中使用任何其他字符。
12 ' 用于引用前缀或后缀中的特殊字符。

示例

文件:fmt_formatNumber.jsp -

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>fmt:formatNumber示例</title>
</head>
<body>
    <div style="margin: auto; width: 80%">
        <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>
    </div>

</body>
</html>

这将产生以下结果 -

Number Format:

Formatted Number (1): ¤ 120,000.23 

Formatted Number (2): 000.231 

Formatted Number (3): 120,000.231 

Formatted Number (4): 120000.231 

Formatted Number (5): 023% 

Formatted Number (6): 12,000,023.0900000000% 

Formatted Number (7): 023% 

Formatted Number (8): 120E3 

Currency in USA : $120,000.23