Função NUMFORMAT

Um conjunto numérico de valores é formatado de acordo com a formatação de números especificada. Os valores de origem podem ser uma referência a uma coluna contendo valores inteiros ou decimais.
  • Se o valor de origem não incluir uma entrada válida para esta função, um valor ausente será retornado.
  • Quando uma transformação NUMFORMAT é aplicada, a coluna pode ser reclassificada como um tipo de dados diferente. Por exemplo, se a string de formato (segundo parâmetro) for '#' (uma única cerquilha), todos os valores serão arredondados para o inteiro mais próximo e a coluna será reclassificada como "Inteiro".

    Dica: no geral, formate os dados numéricos depois de concluir os cálculos. Em alguns casos, você talvez perca a precisão numérica na conversão de formatos ou seus dados podem ser redigitados para um tipo de dados diferente (por exemplo, decimal para inteiro).

  • Para mais informações sobre a formatação dos valores da data, consulte Função DATEFORMAT.

O Cloud Dataprep by TRIFACTA® aceita uma grande variedade de formatos de números, seguindo padrões Java. Para mais informações, consulte a documentação do Java.

OBSERVAÇÃO: essa função apenas altera a forma como o valor da célula subjacente é exibido. Se você arredondar o valor para um nível específico de precisão, use a função ROUND. Consulte Função ROUND.

Uso básico

derive type:single value: NUMFORMAT(MyPrice, '$###,###.##') as: 'dateformat_MyPrice'

Resultado: gera uma coluna de valores com base na coluna MyNum convertidos em um formato de preço.

Sintaxe

derive type:single value:NUMFORMAT(numeric_col, number_format_string)

ArgumentoObrigatório?Tipo de dadosDescrição
numeric_colSstring, inteiro ou decimalNome da coluna inteira ou decimal cujos valores precisam ser formatados
number_format_stringSstringValor literal da string de formatação do número a ser aplicada

Para mais informações sobre os padrões de sintaxe, consulte Notas de sintaxe da documentação da linguagem.

numeric_col

Nome da coluna cujos dados inteiros ou decimais precisam ser formatados.

  • Os valores com mais de 20 dígitos após o ponto decimal são truncados por esta função.

  • Os valores ausentes nos dados de origem desta função geram valores ausentes na saída.
  • Não há compatibilidade com colunas múltiplas e caracteres curinga.

Observações sobre o uso:

Obrigatório?Tipo de dadosValor de exemplo
SimString (referência de coluna) ou literal inteiro ou decimalMyPrice

number_format_string

Valor de string indicando o formato de número a ser aplicado aos valores de entrada.

OBSERVAÇÃO: não é possível criar strings de formato numérico em que um valor 0 aparece antes de um valor #. As seguintes strings de exemplo são incompatíveis: #.#0, #.#0#, #.#00

Alguns códigos-chave:

CódigoDescriçãoExemplo de string de formatoExemplo de entradaExemplo de saída
#Insira um dígito se estiver presente nos dados.

'###,###'

99

999

1000

10000

99

999

1.000

10.000

0Insira um dígito, mesmo se ele não estiver presente em um dado.'00.##'

20

7,1

20

07,1

$Você pode adicionar valores de constantes à expressão. Espaço em branco é respeitado.
Por exemplo, você pode inserir marcadores de moeda no início da expressão.
'$ ##.##'20
2514,22
6,6666
$ 20
$ 2514,22
$ 6,67
%As expressões de porcentagem podem estar na parte de trás da expressão de formatação de números.'##.## %'20
2514,22
6,6666
20 %
2514,22 %
6,67%

O Cloud Dataprep by TRIFACTA é compatível com strings de formatação de números Java, com algumas exceções.

Os valores ausentes nos dados de origem desta função geram valores ausentes na saída.

Notas de uso:

Obrigatório?Tipo de dadosValor de exemplo
SimString'#.#'

Exemplos

Exemplo: preço de formatação e porcentagens

Este exemplo mostra como gerenciar a formatação de números para dados de preço e porcentagem quando você precisa executar alguns cálculos nos dados no aplicativo.

Origem:

Neste caso, você precisa computar as colunas de subtotal e totais.

ID do pedidoQtyPreço unitárioDescontoTaxa de imposto
10015$25,000%8,25%
100215$39,995%8,25%
10032$99,9915%8,25%
1004100$999,990%8,25%

Quando esses dados forem importados pela primeira vez para a página do Transformer, você poderá notar o seguinte:

  • O tipo de dados para OrderId é um inteiro, quando ele deveria ser tratado como string.
  • As colunas UnitPrice , Discount e TaxRate são classificadas como strings devido aos caracteres da unidade nos valores.

OBSERVAÇÃO: sempre que possível, remova separadores de moeda e de três dígitos dos dados numéricos antes da importação.

Você pode reclassificar a coluna OrderId como string, sem problema. Se você reclassificar as outras três colunas, todos os valores serão incompatíveis. Use as seguintes transformações para remover a notação de moeda e de porcentagem. Com a primeira transformação, o sinal % é removido de cada valor, em todas as colunas, com o uso de um padrão Cloud Dataprep.

replace col: * on: `\%{end}` with: ''

Use um semelhante para remover o sinal $ no início dos valores:

replace col: * on: `{start}\$` with:''

Quando ambos são aplicados, você pode ver que os tipos de dados de cada coluna são atualizados para um tipo numérico: inteiro ou decimal. Agora, você pode executar os seguintes cálculos:

derive type:single value:(Qty * UnitPrice) as:'SubTotal'

Você pode usar a nova coluna SubTotal como base para o cálculo da coluna DiscountedTotal, que tem fatores em descontos:

derive type:single value:(SubTotal - (SubTotal * (Discount / 100))) as:'DiscountedTotal'

A coluna Total aplica o imposto à coluna DiscountedTotal:

derive type:single value: DiscountedTotal * (1 + (TaxRate / 100)) as: 'Total'

Devido às operações matemáticas que foram aplicadas aos dados originais, os valores podem não parecer mais informações de dólar. Agora, você pode aplicar a formatação de preços às colunas. A seguinte função altera o formato de número para a coluna SubTotal:

set col:SubTotal value:NUMFORMAT(SubTotal, '#.00')

Observe que o $ anterior não foi adicionado de volta aos dados, o que altera o tipo de dados para string. Você pode aplicar esta transformação às colunas Price, DiscountedTotal e Total.

OBSERVAÇÃO: os tipos de dados das colunas precisam corresponder às entradas esperadas para o sistema de análise downstream.

Os valores Discount e TaxRate precisam ser convertidos em decimais. A seguinte função ajusta a coluna Discount:

set col:Discount value:(Discount / 100)

Resultados:

Os dados de saída terão o seguinte aspecto:

OrderIdQtyUnitPriceSubTotalDiscountDiscountedTotalTaxRateTotal
1001525,00125,000125,000,0825135,31
10021539,99599,850,05569,860,0825616,87
1003299,99199,980,15169,980,0825184,01
1004100999,9999999,00099999,000,0825108248,92

Ver também

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Google Cloud Dataprep
Precisa de ajuda? Acesse nossa página de suporte.