JSTL - Tag <fmt: formatNumber> central
o <fmt:formatNumber> tag é usada para formatar numbers, percentages, e currencies.
Atributo
o <fmt:formatNumber> tag tem os seguintes atributos -
| Atributo | Descrição | Requeridos | Padrão |
|---|---|---|---|
| Valor | Valor numérico para exibir | sim | Nenhum |
| tipo | NUMBER, CURRENCY ou PERCENT | Não | Número |
| padronizar | Especifique um padrão de formatação personalizado para a saída. | Não | Nenhum |
| Código da moeda | Código da moeda (para type = "currency") | Não | Do local padrão |
| currencySymbol | Símbolo da moeda (para tipo = "moeda") | Não | Do local padrão |
| groupingUsed | Se deve agrupar números (VERDADEIRO ou FALSO) | Não | verdadeiro |
| maxIntegerDigits | Número máximo de dígitos inteiros para imprimir | Não | Nenhum |
| minIntegerDigits | Número mínimo de dígitos inteiros para imprimir | Não | Nenhum |
| maxFractionDigits | Número máximo de dígitos fracionários para imprimir | Não | Nenhum |
| minFractionDigits | Número mínimo de dígitos fracionários para imprimir | Não | Nenhum |
| var | Nome da variável para armazenar o número formatado | Não | Imprimir na página |
| escopo | Escopo da variável para armazenar o número formatado | Não | página |
Se o atributo de tipo for porcentagem ou número, você poderá usar vários atributos de formatação de número. omaxIntegerDigits e minIntegerDigitsos atributos permitem que você especifique o tamanho da porção não fracionária do número. Se o número real excedermaxIntegerDigits, o número será truncado.
Os atributos também são fornecidos para permitir que você determine quantas casas decimais devem ser usadas. ominFractionalDigits e maxFractionalDigitsatributos permitem que você especifique o número de casas decimais. Se o número exceder o número máximo de dígitos fracionários, o número será arredondado.
O agrupamento pode ser usado para inserir vírgulas entre grupos de milhares. O agrupamento é especificado definindo ogroupingIsUsedatributo para verdadeiro ou falso. Ao usar o agrupamento comminIntegerDigits, você deve ter cuidado para obter o resultado pretendido.
Você pode optar por usar o atributo padrão. Este atributo permite incluir caracteres especiais que especificam como você gostaria que seu número fosse codificado. A tabela a seguir lista os códigos.
| S.No. | Símbolo e Descrição |
|---|---|
| 1 | 0 Representa um dígito. |
| 2 | E Representa em forma exponencial. |
| 3 | # Representa um dígito; exibe 0 como ausente. |
| 4 | . Serve como um espaço reservado para um separador decimal. |
| 5 | , Serve como um espaço reservado para um separador de agrupamento. |
| 6 | ; Separa formatos. |
| 7 | - Usado como o prefixo negativo padrão. |
| 8 | % Multiplica por 100 e é exibido como uma porcentagem. |
| 9 | ? Multiplica por 1000 e exibe por mil. |
| 10 | ¤ Representa o símbolo da moeda; substituído pelo símbolo de moeda acionário. |
| 11 | X Indica que qualquer outro caractere pode ser usado no prefixo ou sufixo. |
| 12 | ' Usado para citar caracteres especiais em um prefixo ou sufixo. |
Exemplo
<%@ 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>
O código acima irá gerar o seguinte resultado -
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