Funções Decimal, Float e Value

Aplica-se a: Aplicativos de tela Colunas de fórmula do Dataverse Fluxos da área de trabalho Aplicativos baseados em modelo Power Platform CLI

Converte uma sequência de texto ou outros tipos em um número.

Descrição

Observação

O Power Apps só suporta a função Value e ela retorna um valor Flutuante. O suporte para as funções Decimal e Float será adicionado em breve.

Use as funções Decimal, Float e Value para converter uma cadeia de caracteres de texto que contém caracteres numéricos em um valor numérico. Use essa função quando você precisar realizar cálculos em números inseridos como texto por um usuário. Essas funções também podem ser usadas para converter outros tipos em um número, como data/hora e booleano.

A função Valor retornará o tipo de dados numérico padrão para o host Power Fx que você está usando, que geralmente é Decimal e a melhor escolha para a maioria das situações. Use as funções Decimal e Float quando precisar de um tipo de dados específico para um cenário específico, como um relatório científico cálculo com um número muito grande. Para obter mais detalhes sobre como trabalhar com esses tipos de dados, consulte a seção Números de Tipos de dados.

Linguagens diferentes interpretam , e . de maneiras distintas. Por padrão, o texto é interpretado no idioma do usuário atual. Você pode especificar o idioma a ser usado com uma marca de idioma, usando as mesmas marcas de idioma retornadas pela função Language.

Observações sobre o formato da cadeia de caracteres:

  • A cadeia de caracteres pode ser prefixada com o símbolo de moeda para o idioma atual. O símbolo de moeda é ignorado. Símbolos de moeda de outros idiomas não são ignorados.
  • A cadeia de caracteres pode incluir um sinal de porcentagem (%) no final, indicando que é uma porcentagem. O número será dividido por 100 antes de retornar. Porcentagens e símbolos de moeda não podem ser combinados.
  • A cadeia de caracteres pode ser em notação científica, com 12 x 103 expresso como "12e3".

Se o número não estiver no formato adequado, essas funções retornarão um erro.

Para converter valores de data e hora, use as funções DateValue, TimeValue ou DateTimeValue.

Sintaxe

Decimal( String [, LanguageTag ] )
Float( String [, LanguageTag ] )
Value( String [, LanguageTag ] )

  • String - obrigatório. Cadeia de caracteres para converter em um valor numérico.
  • LanguageTag - opcional. A marca de idioma na qual analisar a cadeia de caracteres. Se não for especificada, o idioma do usuário atual será utilizado.

Decimal( Não digitado )
Float( Não digitado )
Value( Untyped )

  • Untyped - obrigatório. Objeto sem tipo que representa um número. Os valores aceitáveis dependem do provedor sem tipo. Para JSON, espera-se que o objeto sem tipo seja um número JSON, um booliano ou um texto que possa ser convertido em um número. Lembre-se de que os formatos relacionados à localidade são considerações importantes ao se comunicar com sistemas externos.

Exemplos

O usuário que executa essas fórmulas está localizado nos Estados Unidos e selecionou o inglês como idioma. A função Language está retornando "en-US". O host do Power Fx usa Decimal por padrão.

Valor e Decimal

Como estamos usando um host que tem Decimal como padrão, Valor e Decimal retornará os mesmos resultados.

Fórmula Description Result
Value( "123.456" )
Decimal( "123,456" )
O idioma padrão de "en-US", que usa um ponto como separador decimal, será usado. 123,456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123,456", "es-ES" )
"es-ES" é a marca de idioma para espanhol da Espanha. Na Espanha, um ponto é um separador de milhares. 123,456 (Decimal)
Value( "123.456" )
Decimal( "123,456" )
O idioma padrão de "en-US", que usa uma vírgula como separador de milhares, será usado. 123,456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123,456", "es-ES" )
"es-ES" é a marca de idioma para espanhol da Espanha. Na Espanha, uma vírgula é o separador decimal. 123,456 (Decimal)
Value( "12.34%" )
Decimal( "12,34%" )
O sinal de porcentagem no final da cadeia de caracteres indica que esta é uma porcentagem. 0,1234 (Decimal)
Value( "$ 12.34" )
Decimal( "$ 12,34" )
O símbolo de moeda do idioma atual é ignorado. 12,34 (Decimal)
Value( "24e3" )
Decimal( "24e3" )
Notação científica para 24 x 103. 24000 (Decimal)
Value( verdadeiro )
Decimal (verdadeiro)
Converte um booliano em um número, 0 para falso e 1 para verdadeiro 1 Decimal

Float

A função Float terá resultados muito próximos dos mesmos acima. Como 123,456 não pode ser representado com precisão em Float, o resultado é uma aproximação muito próxima de (123,456000000000003069544618484E2) e os cálculos compostos de erros de arredondamento podem resultar em um resultado inesperado. O tipo resultante será Float em vez disso.

As coisas divergem se números maiores ou menores forem usados.

Fórmula Description Result
Float (1e100) Como o número literal 1e100 está além do intervalo de um Decimal, isso resulta em um erro antes mesmo de chamar a função Float. error (estouro)
Decimal( 1e100 ) O mesmo problema da função Float. error (estouro)
Float ("1e100") O número na string de texto está dentro do intervalo de números Float. 1e100 Float
Decimal( "1e100" ) O número na string de texto está além do intervalo de números Decimal. error (estouro)
Float( "10000000000,0000000001" ) O número na string de texto está dentro do intervalo de números Float. No entanto, o número requer mais precisão do que um Float pode fornecer e será truncado. 1 (Float)
Decimal( "10000000000,0000000001" ) O número na string de texto está dentro da faixa e precisão de um número Decimal. 10000000000,0000000001 (Decimal)