Etiqueta <fmt:formatNumber>

Biblioteca de etiquetas estándar de JSP

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

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

La etiqueta <fmt:formatNumber> tiene los siguientes atributos:

Atributo Descripción ¿Es necesario? valor por defecto
value El número a mostrar Sí Ninguno
type Tipo NUMBER, CURRENCY o PERCENT no Number
pattern Especifica un patrón de formato personalizado para la salida. no Ninguno
currencyCode Código de moneda (cuando type="currency") no Depende de la región predeterminada
currencySymbol Símbolo de moneda (cuando type="currency") no Depende de la región predeterminada
groupingUsed Si se agrupan los números (TRUE o FALSE) no true
maxIntegerDigits Dígitos máximos para números enteros no Ninguno
minIntegerDigits Dígitos mínimos para números enteros no Ninguno
maxFractionDigits Dígitos máximos después del punto decimal no Ninguno
minFractionDigits Dígitos mínimos después del punto decimal no Ninguno
var Variable que almacena números formateados no Print to page
scope Ámbito de la propiedad var no page

Si el atributo type es percent o number, entonces puede utilizar otras propiedades de formato numérico. Las propiedades maxIntegerDigits y minIntegerDigits le permiten especificar la longitud de la parte entera. Si el número real supera el valor máximo especificado por maxIntegerDigits, el número se truncará.

Hay algunas propiedades que le permiten especificar el número de dígitos después del punto decimal. Las propiedades minFractionalDigits y maxFractionalDigits le permiten especificar el número de dígitos después del punto decimal. Si el número real excede el rango especificado, el número se truncará.

La agrupación de números se puede utilizar para insertar una coma entre cada tres dígitos. La propiedad groupingIsUsed se utiliza para especificar si se utiliza la agrupación de números. Cuando se utiliza junto con la propiedad minIntegerDigits, se debe tener mucho cuidado para obtener los resultados esperados.

También puede utilizar el atributo pattern. Este atributo le permite incluir caracteres específicos al codificar números. La siguiente tabla enumera estos caracteres.

Símbolo Descripción
0 Representa un dígito
E Usar formato exponencial
# Representa un dígito; si no hay ninguno, muestra 0. Los ceros iniciales y finales no se muestran.
. Punto decimal
, Separador de agrupación de dígitos
; Formato de separación
- Usar el prefijo de número negativo predeterminado
% Porcentaje
? Tanto por mil
¤ Símbolo de moneda; se sustituye por el símbolo de moneda real.
X Especificar caracteres que se pueden utilizar como prefijo o sufijo
' Hacer referencia a caracteres especiales en el prefijo o sufijo


Demostración de ejemplo

<%@ 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>
<h3>数字格式化:</h3>
<c:set var="balance" value="120000.2309" />
<p>格式化数字 (1): <fmt:formatNumber value="${balance}" 
            type="currency"/></p>
<p>格式化数字 (2): <fmt:formatNumber type="number" 
            maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化数字 (3): <fmt:formatNumber type="number" 
            maxFractionDigits="3" value="${balance}" /></p>
<p>格式化数字 (4): <fmt:formatNumber type="number" 
            groupingUsed="false" value="${balance}" /></p>
<p>格式化数字 (5): <fmt:formatNumber type="percent" 
            maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化数字 (6): <fmt:formatNumber type="percent" 
            minFractionDigits="10" value="${balance}" /></p>
<p>格式化数字 (7): <fmt:formatNumber type="percent" 
            maxIntegerDigits="3" value="${balance}" /></p>
<p>格式化数字 (8): <fmt:formatNumber type="number" 
            pattern="###.###E0" value="${balance}" /></p>
<p>美元 :
<fmt:setLocale value="en_US"/>
<fmt:formatNumber value="${balance}" type="currency"/></p>
</body>
</html>

El resultado de la ejecución es el siguiente:

数字格式化:

格式化数字 (1): ¥120,000.23

格式化数字 (2): 000.231

格式化数字 (3): 120,000.231

格式化数字 (4): 120000.231

格式化数字 (5): 023%

格式化数字 (6): 12,000,023.0900000000%

格式化数字 (7): 023%

格式化数字 (8): 120E3

美元 : $120,000.23

Biblioteca de etiquetas estándar de JSP

Otras extensiones