Formatando e Analisando Números como Cadeias

Para conversões entre tipos de dados de cadeia e tipos de dados numéricos, você pode fornecer, no parâmetro FORMAT da função CAST, uma expressão de formatação especial. Para conversões de tipos de cadeia, a expressão de formatação define como a cadeia de origem deve ser analisada para preencher o tipo de dados de destino. Para conversões para tipos de cadeia, define como os dados na expressão de origem devem ser formatados na cadeia de destino.

Você pode especificar uma expressão FORMAT para as conversões numéricas a seguir. (A especificação de uma expressão FORMAT para as conversões de data/hora é descrita em Formatando e Analisando dateTimes como Cadeias.)
  • De qualquer um dos tipos de dados de cadeia (BIT, BLOB ou CHARACTER) para:
    • DECIMAL
    • FLOAT
    • INTEGER
  • Para qualquer um dos tipos de dados de cadeia (BIT, BLOB ou CHARACTER), a partir de qualquer um dos tipos de dados numéricos listados no marcador anterior.
A expressão de formatação consiste em três partes:
  1. Um subpattern que define números positivos.
  2. Um subpattern opcional que define números negativos. (Se apenas um subpattern for definido, números negativos utilizarão o padrão positivo, prefixado com um sinal de menos.)
  3. Os parâmetros opcionais groupsep e decsep.

SINTAXE

Parâmetros

chars

Uma seqüência de zero ou mais caracteres. Todos os caracteres podem ser utilizados, exceto os caracteres especiais listados na Tabela 1.

decsep

Um ou mais caracteres a serem utilizados como o separador entre as partes inteira e decimal de um número (o separador decimal). O separador decimal padrão é um ponto (.).

digits

Uma seqüência de um ou mais tokens numéricos (0 # - + , . ) listados na Tabela 1.

groupsep

Um ou mais caracteres a serem utilizados como o separador entre clusters de inteiros, para tornar os números grandes mais legíveis (o separador de agrupamento). O separador de agrupamento padrão é nulo (ou seja, não há nenhum agrupamento de dígitos ou separação de grupos).

O agrupamento é geralmente efetuado em milhares, mas pode ser redefinido pelo padrão ou pelo código do idioma. Há dois tamanhos de agrupamento:
O tamanho do agrupamento primário
Utilizado para dígitos inteiros menos significativos.
O tamanho do agrupamento secundário
Utilizado para todos os outros dígitos inteiros.
Na maioria dos casos, os tamanhos de agrupamento principal e secundário são os mesmos, porém podem ser diferentes. Por exemplo, se o padrão utilizado for #,##,##0, o tamanho do agrupamento primário será 3 e o secundário será 2. O número 123456789 se tornaria a cadeia "12,34,56,789".

Se forem utilizados vários separadores de agrupamento (como no exemplo anterior), o separador mais à direita definirá o tamanho primário e o penúltimo separador mais à direita definirá o tamanho secundário.

subpattern

O subpattern consiste em:
  1. Um prefixo opcional (chars)
  2. Um padrão obrigatório que represente um número inteiro
  3. Um padrão opcional que represente casas decimais
  4. Um padrão opcional que represente um expoente (a potência pela qual o número está elevado)
  5. Um sufixo opcional (chars)
As partes 2, 3 e 4 do subpadrão são definidas pelos tokens na tabela a seguir.
Tabela 1. Tokens para Definir um Subpadrão de Formatação Utilizado para Conversões Numéricas/Cadeia
Token Representa
0 Qualquer dígito, incluindo um zero à esquerda.
# Qualquer dígito, exceto um zero à esquerda. (Consulte a explicação ou a diferença entre 0 e # após esta tabela.)
. Separador decimal.
+ Prefixo de números positivos.
- Prefixo de números negativos.
, Separador de agrupamento.
E/e Separa o número do expoente.
; Limite de subpadrão.
' Aspa utilizada para delimitar caracteres especiais com aspas. Se um aspa for necessária na saída, ela deverá ser duplicada ('').
* Especificador de preenchimento. O caractere após o asterisco é utilizado para preencher o número a fim de ajustar o comprimento do padrão do formato.

Os caracteres # e 0 são utilizados para substituição de dígitos, a diferença entre eles é que um caractere # será removido se não houver um número para substituí-lo. Por exemplo, 10 formatado pelo padrão #,##0.00 ocasiona "10.00", mas formatado por 0,000.00 ocasiona "0,010.00".

Para especificar caracteres de preenchimento, utilize um asterisco. Quando um asterisco é colocado em uma das duas regiões chars (o prefixo e o sufixo), o caractere imediatamente após ele é utilizado para preencher a saída. O preenchimento pode ser especificado apenas uma vez. Por exemplo, um padrão de *x#,###,##0.00 aplicado a 1234 ocasionaria "xxx1,234.00". Aplicado a 1234567, ocasionaria "1,234,567.00".

Exemplos de Padrões de Formatação

Tabela 2. Exemplos de Padrões de Formatação, Mostrando a Saída de Cadeias a partir de uma Amostra de Entrada Numérica
Padrão Número de Entrada Cadeia de Saída
+###,##0.00;-###,###,##0.00:groupsep='':decsep=, 123456789.123 "+123'456'789,12"
##0.00 1000000 "1000000.00"
##0.00 3.14159265 "3.14"
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback
Direitos Autorais IBM Corporation 1999, 2006 Última Atualização: 1 Sep 2006
ak05615_