Formato numérico
>
Quando um texto é analisado como qualquer tipo de dado numérico ou qualquer tipo de dado numérico deve ser formatado para um texto, o padrão de formato deve ser especificado.
A formatação é sensível ao locale.
Em CloudConnect, o formato decimal Java é usado.
Table 28.8. Sintaxe do padrão de formato numérico
Símbolo | Localização | Localizado? | Medição |
---|---|---|---|
# | Número | Sim | Dígito, zero mostra como ausente |
0 | Número | Sim | Dígito |
. | Número | Sim | Seta separador decimal ou separador decimal monetário |
– | Número | Sim | Signo mínimo |
, | Número | Sim | Seta separador de agrupamento |
E | Número | Sim | Separa mantissa e expoente em notação científica. Não precisa ser citado em prefixo ou sufixo. |
; | Limite do sub-padrão | Sim | Separa sub-padrões positivos e negativos |
% | Prefixo ou sufixo | Sim | Multiplicar por 100 e mostrar como percentagem |
‰ (\u2030) | Prefixo ou sufixo | Sim | Multiplicar por 1000 e mostrar como por milha valor |
¤ (\u00A4) | Prefixo ou sufixo | Não | Sinal de moeda, substituído pelo símbolo da moeda. Se dobrado, substituído pelo símbolo da moeda internacional. Se presente num padrão, é utilizado o separador decimal monetário em vez do separador decimal. |
‘ | Prefixo ou sufixo | No | Utilizado para citar caracteres especiais num prefixo ou sufixo, por exemplo, “‘#’#” formata 123 a “#123”. Para criar uma única citação propriamente dita, use duas seguidas: “‘o”clock”. |
-
Both prefixo e sufixo são caracteres Unicode de \u0000 a \uFFFD, incluindo as margens, mas excluindo caracteres especiais.
Padrão padrão composto de sub-padrões, prefixos, sufixos, etc. da forma mostrada na tabela seguinte:
Explicação destes símbolos a seguir:
Tabela 28.10. Notação usada
Notação | Descrição |
---|---|
>X* | 0 ou mais instâncias de X |
(X | Y) | e ou X ou Y |
X..Y | qualquer caractere de X até Y, inclusive |
S – T | caracteres em S, exceto aqueles em T |
{X} | X é opcional |
Lembrar também que a formatação é locale senistive. Veja a seguinte tabela na qual os resultados são diferentes para diferentes locais:
Tabela 28.11. Formatação sensível a locales:
Padrão | Locale | Resultado |
---|---|---|
###,####.#####7232> | pt.US | 123.456.789 |
#####,#####.#########7232> | de.DE | 123.456.789 |
####,####.###### | fr.FR | 123 456.789 |
>
>
Para uma visão mais profunda dos números de manuseio, consulte a documentação oficial Java.
Notação científica
Números em notação científica são expressos como o produto de uma mantissa e uma potência de dez.
Por exemplo, 1234
pode ser expresso como 1.234 x 103
.
A mantissa está frequentemente na faixa 1.0 <= x < 10.0
, mas não precisa ser.
Os tipos de dados numéricos podem ser instruídos para formatar e analisar a notação científica apenas através de um padrão. Em um padrão, o caractere exponente imediatamente seguido por um ou mais caracteres de dígitos indica notação científica.
Exemplo: “0.###E0” formata o número 1234 como “1.234E3”.
Exemplos de padrão numérico e resultados seguem:
Legend:
1): O número máximo de dígitos inteiros é 3, o número mínimo de dígitos inteiros é 1, o máximo é maior que o mínimo, assim o expoente será uma multiplicação de três (número máximo de dígitos inteiros) em cada um dos casos.
2): O número máximo de dígitos inteiros é 2, o número mínimo de dígitos inteiros é 1, o máximo é maior que o mínimo, portanto o expoente será uma multiplicação de dois (número máximo de dígitos inteiros) em cada um dos casos.
3): O número máximo de dígitos inteiros é 2, o número mínimo de dígitos inteiros é 2, o máximo é igual ao mínimo, o número mínimo de dígitos inteiros será alcançado ajustando o expoente.
4): O número máximo de dígitos inteiros é 3, o número máximo de dígitos de fração é 2, o número de dígitos significativos é a soma do número máximo de dígitos inteiros com o número máximo de dígitos de fração, portanto, o número de dígitos significativos é como mostrado (5 dígitos).
Formatos binários
A tabela abaixo apresenta uma lista de formatos disponíveis:
Tabela 28.13. Formatos binários disponíveis:
Tipo | Nome | Formato | Comprimento |
---|---|---|---|
integer |
BIG_ENDIAN > |
complemento de dois, big-endian | variável |
LITTLE_ENDIAN |
complemento de dois, little-endian | ||
PACKED_DECIMAL |
packeddecimal | ||
ponto flutuante | DOUBLE_BIG_ENDIAN |
IEEE 754, big-endian | 8 bytes |
DOUBLE_LITTLE_ENDIAN |
IEEE 754, little-endian | ||
FLOAT_BIG_ENDIAN |
IEEE 754, big-endian | 4 bytes | |
FLOAT_LITTLE_ENDIAN |
IEEE 754, little-endian |
Os formatos de ponto flutuante podem ser usados comnumeric
e decimal
tipos de dados.Os formatos inteiros podem ser usados com integer
e long
tipos de dados. A exceção à regra é odecimal
datatype, que também suporta formatos inteiros (BIG_ENDIAN
,LITTLE_ENDIAN
ePACKED_DECIMAL
). Quando um formato inteiro é usado com o decimal
datatype, os pontos decimais implícitos são definidos de acordo com o atributo Scale. Forexample, se o valor armazenado for 123456789 eScale for definido como 3, o valor do campo será123456.789.
Para usar um formato binário, crie um campo de metadados com um dos tipos de dados suportados e defina o atributo Format para o nome do formato prefixado com "BINARY:"
,e.g. para usar o formato PACKED_DECIMAL
, crie um campo adecimal e defina seu formato para"BINARY:PACKED_DECIMAL"
escolhendo-o da lista de formatos disponíveis.
Para os formatos de comprimento fixo (double e float) também o atributoSize deve ser definido de acordo.
Currentemente, formatos de dados binários só podem ser tratados pelo ComplexDataReader e pelo obsoleto FixLenDataReader.