Funções Decimal, Float e Value

Aplica-se a: Aplicações de tela Colunas de fórmula do Dataverse Fluxos de ambiente de trabalho Aplicações condicionadas por modelo Power Platform CLI

Converte uma cadeia de texto ou de outros tipos num número.

Descrição

Nota

O Power Apps suporta apenas a função Valuee devolve um valor Flutuante . O suporte para as funções Decimal e Float será adicionado em breve.

Utilize as funções Decimal, Floate Value para converter uma cadeia de texto que contém carateres numéricos em valor numérico. Utilize estas funções quando necessitar de efetuar cálculos em números que foram introduzidos como texto por um utilizador. Estas funções também podem ser utilizadas para converter outros tipos num número, como data/hora e booleano.

A função Value devolverá o tipo de dados numéricos predefinido para o anfitrião do Power Fx que está a utilizar, que geralmente é Decimal e a melhor opção para a maioria das situações. Utilize as funções Decimal e Float quando precisar de um tipo de dados específico para um cenário específico, como um cálculo científico com um número muito grande. Para obter mais detalhes sobre como trabalhar com estes tipos de dados, consulte a secção Números de Tipos de dados.

Vários idiomas interpretam , e . de forma diferente. Por predefinição, o texto é interpretado no idioma do utilizador atual. Pode especificar o idioma a utilizar com uma etiqueta de idioma ao utilizar as mesmas etiquetas de idioma que são devolvidas pela função Language.

Notas sobre o formato da cadeia:

  • A cadeia poderá ser antecedida pelo símbolo de moeda do idioma atual. O símbolo de moeda é ignorado. Não são ignorados os símbolos de moeda de outros idiomas.
  • A cadeia poderá incluir um sinal de percentagem (%) no final, a indicar que é uma percentagem. O número será dividido por 100 antes de ser devolvido. Não é possível misturar percentagens e símbolos de moeda.
  • A cadeia poderá estar em notação científica, com 12 x 103 expresso como "12e3".

Se o número não estiver num formato adequado, estas funções devolverão um erro.

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

Sintaxe

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

  • Cadeia – Obrigatório. Cadeia a converter num valor numérico.
  • LanguageTag – Opcional. A etiqueta do idioma no qual pretende analisar a cadeia. Se não for especificado, será utilizado o idioma do utilizador atual.

Decimal( Untyped )
Float( Untyped )
Value( Untyped )

  • Sem tipo – Obrigatório. Objeto sem tipo que representa um número. Os valores aceitáveis dependem do fornecedor sem tipo. Para JSON, espera-se que o objeto sem tipo seja um número JSON, booleano ou texto que pode ser convertido num número. Tenha em atenção que os formatos relacionados com a região são considerações importantes ao comunicar com sistemas externos.

Exemplos

O utilizador que executa estas fórmulas encontra-se nos Estados Unidos e selecionou inglês como idioma. A função Language está a devolver "en-US". O anfitrião do Power Fx utiliza Decimal por predefinição.

Valor e Decimal

Como estamos a utilizar um anfitrião que tem Decimal como a predefinição, Value e Decimal devolverão os mesmos resultados.

Fórmula Descrição Resultado
Value( "123.456" )
Decimal ("123,456")
Será utilizado o idioma predefinido de "en-US", que utiliza um ponto como separador decimal. 123,456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123,456", "es-ES" )
"es-ES" é a etiqueta de idioma para o espanhol de Espanha. Em Espanha, a vírgula é o separador dos milhares. 123456 (Decimal)
Value( "123,456" )
Decimal ("123,456")
Será utilizado o idioma predefinido de "en-US", que utiliza uma vírgula como separador de milhares. 123456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123,456", "es-ES" )
"es-ES" é a etiqueta de idioma para o espanhol de Espanha. Em Espanha, a vírgula é o separador decimal. 123,456 (Decimal)
Value( "12.34%" )
Decimal( "12,34%" )
O símbolo de percentagem no fim da cadeia indica que se trata de uma percentagem. 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 de 24 x 103. 24000 (Decimal)
Value( true )
Decimal( true )
Converte um booleano num número, 0 para false e 1 para true 1 Decimal

Float

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

Onde existe divergência é se são utilizados números maiores ou menores.

Fórmula Descrição Resultado
Float( 1e100 ) Como o número literal 1e100 está para além do intervalo de um Decimal, isto resulta num erro antes de chamar a função Float. erro (capacidade excedida)
Decimal( 1e100 ) O mesmo problema que com a função Float . erro (capacidade excedida)
Float( "1e100" ) O número na cadeia de texto está dentro do intervalo de um número Float. 1e100 Float
Decimal( "1e100" ) O número na cadeia de texto está para além do intervalo de um número Decimal. erro (capacidade excedida)
Float( "10000000000.0000000001" ) O número na cadeia de texto está dentro do intervalo de um número Float. No entanto, o número requer mais precisão do que Float pode fornecer e será truncado. 1 (Float)
Decimal ("10000000000.0000000001") O número na cadeia de texto está para além do intervalo e da precisão de um número Decimal. 10000000000,0000000001 (Decimal)