English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Etiqueta <fmt:formatNumber>

Biblioteca de etiquetas estándar de JSP

La etiqueta <fmt:formatNumber> se utiliza para formatear números, porcentajes y monedas.

Formato de sintaxis

<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>"/>

Atributo

Atributos del etiqueta <fmt:formatNumber>:

Atributo 描述 ¿Es obligatorio? Valor predeterminado
value Número a mostrar
type TIPO, MONEDA o PORCENTAJE Número
pattern Especifique un patrón de formato personalizado para la salida
currencyCode Código monetario (cuando type="currency") Depende del área regional predeterminada
currencySymbol Símbolo monetario (cuando type="currency") Depende del área regional predeterminada
groupingUsed ¿Está habilitado el grupo de dígitos (TRUE o 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 指定可以作为前缀或后缀的字符
' 在前缀或后缀中引用特殊字符

示例演示

<%@ 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" %>
<html>
<head>
  <title>JSTL fmt:formatNumber 标签</title>
</head>
<body>
<h2>Formateo de números:</h2>
<c:set var="balance" value="120000.2309" />
<p>Formateo de números (1): <fmt:formatNumber value="${balance}" 
            type="currency"/></p>
<p>Formateo de números (2): <fmt:formatNumber type="number" 
            maxIntegerDigits="3" value="${balance}" /></p>
<p>Formateo de números (3): <fmt:formatNumber type="number" 
            maxFractionDigits="3" value="${balance}" /></p>
<p>Formateo de números (4): <fmt:formatNumber type="number" 
            groupingUsed="false" value="${balance}" /></p>
<p>Formateo de números (5): <fmt:formatNumber type="percent" 
            maxIntegerDigits="3" value="${balance}" /></p>
<p>Formateo de números (6): <fmt:formatNumber type="percent" 
            minFractionDigits="10" value="${balance}" /></p>
<p>Formateo de números (7): <fmt:formatNumber type="percent" 
            maxIntegerDigits="3" value="${balance}" /></p>
<p>Formateo de números (8): <fmt:formatNumber type="number" 
            pattern="###.###E0" value="${balance}" /></p>
<p>USD :
<fmt:setLocale value="en_US"/>
<fmt:formatNumber value="${balance}" type="currency"/></p>
</body>
</html>

Resultados de ejecución como se muestra a continuación:

Formateo de números:
Formateo de números (1): ¥120,000.23
Formateo de números (2): 000.231
Formateo de números (3) : 120,000.231
Formateo de números (4) : 120000.231
Formateo de números (5): 023%
Formateo de números (6) : 12,000,023.0900000000%
Formateo de números (7): 023%
Formateo de números (8) : 120E3
Dólares : $120,000.23

Biblioteca de etiquetas estándar de JSP