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
Otras extensiones