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