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