Share via


Funcións decimais, flotantes e de valor

Aplícase a: Columnas de fórmula de aplicacións Dataverse de lona Desktop flúe aplicacións impulsadas Power Platform por Modelo CLI

Converte unha cadea de texto ou outros tipos nun número.

Descripción

Nota

Power Apps Só soporta a función Valor e devolve un valor flotante . O apoio ás funcións decimais e flotantes engadirase proximamente.

Use as funcións Decimal, Float e Value para converter unha cadea de texto que contén caracteres numéricos a un valor numérico. Utilice esta función cando necesite realizar cálculos sobre números que foron introducidos como texto por un usuario. Estas funcións tamén se poden usar para converter outros tipos nun número, como data/hora e booleano.

A función Valor devolverá o tipo de datos numéricos predeterminados para o host que está a usar, que normalmente Power Fx é decimal e a mellor opción para a maioría das situacións. Use as funcións Decimal e Float cando se necesita un tipo de datos específico para un escenario concreto, como un cálculo científico cun número moi grande. Para obter máis detalles sobre o traballo con estes tipos de datos, consulte a sección Números de Tipos de datos.

Os distintos idiomas interpretan , e . de xeito diferente. Por defecto, o texto interprétase no idioma do usuario actual. Pode especificar o idioma a empregar cunha etiqueta de idioma, empregando as mesmas etiquetas de idioma que devolve a función Language.

Notas sobre o formato da cadea:

  • A cadea pode estar prefixada co símbolo da moeda para o idioma actual. O símbolo da moeda ignórase. Os símbolos de moeda para outras linguas non son ignorados.
  • A cadea pode incluír un signo por cento (%) ao final, indicando que é unha porcentaxe. O número dividirase por 100 antes de ser devolto. Porcentaxes e símbolos de moeda non se poden mesturar.
  • A cadea pode estar en notación científica, con 12 x 103 expresado como "12e3".

Se o número non está nun formato adecuado, estas funcións devolverán un erro.

Para converter valores de data e hora, use as funcións DateValue, TimeValue ou DateTimeValue.

Sintaxe

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

  • String - Obrigatorio. Cadea á que converter un valor numérico.
  • LanguageTag - Opcional. Etiqueta de idioma na que analizar a cadea. Se non se especifica, úsase o idioma do usuario actual.

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

  • Untyped - Obrigatorio. Obxecto sen tipificar que representa un número. Os valores aceptables dependen do provedor non tipificado. Para JSON, espérase que o obxecto non tipificado sexa un número JSON, booleano ou texto que se poida converter nun número. Teña en conta que os formatos relacionados coa rexión son consideracións importantes cando se comunica con sistemas externos.

Exemplos

O usuario que administra estas fórmulas está situado nos Estados Unidos e seleccionou o inglés como idioma. A función Language devolve "en-US". O Power Fx host usa decimal por defecto.

Valor e decimal

Dado que estamos a usar un host que ten decimal como por defecto, Valor e Decimal devolverán os mesmos resultados.

Fórmula Descripción Resultado
Value( "123.456" )
Decimal( "123.456" )
Utilizarase o idioma predefinido de "en-US", que usa un punto como separador decimal. 123.456 (decimal)
Value( "123.456", "es-ES" )
Decimal( "123.456", "es-ES" )
"es-ES" é a etiqueta de idioma para o español de España. En España, un punto é o separador de miles. 123456 (decimal)
Value( "123,456" )
Decimal( "123.456" )
Utilizarase o idioma predefinido de "en-US", que usa unha coma como separador de miles. 123456 (decimal)
Value( "123.456", "es-ES" )
Decimal( "123.456", "es-ES" )
"es-ES" é a etiqueta de idioma para o español de España. En España, unha coma é o separador decimal. 123.456 (decimal)
Value( "12.34%" )
Decimal( "12,34%" )
O signo porcentual ao final da cadea indica que se trata dunha porcentaxe. 0.1234 (decimal)
Value( "$ 12.34" )
Decimal($ 12.34" )
Ignórase o símbolo da moeda para o idioma actual. - 12.34 (decimal)
Value( "24e3" )
Decimal( "24e3" )
Notación científica para 24 x 103. 24.000 (decimal)
Valor(verdadeiro)
Decimal( true )
Converte un booleano nun número, 0 para falso e 1 para verdade - 1 Decimal

Float

A función Float terá moi preto dos mesmos resultados que antes. Dado que 123.456 non se pode representar con precisión en Float, o resultado é unha aproximación que é moi próxima (123.456000000000003069544618484E2) e os cálculos de erros de redondeamento de compostos poderían dar lugar a un resultado inesperado. O tipo resultante será Float no seu lugar.

Onde as cousas diverxen é se se usan números maiores ou menores.

Fórmula Descripción Resultado
Float( 1e100) Debido a que o número 1e100 literal está alén do rango dun decimal , isto dá lugar a un erro antes dechamar á función Float . Erro (desbordamento)
Decimal( 1e100 ) O mesmo problema que coa función Float . Erro (desbordamento)
Float( "1e100" ) O número na cadea de texto está dentro do rango de números Float . - 1.100 Flotación
Decimal( "1e100" ) O número na cadea de texto está alén do rango dos números decimais . Erro (desbordamento)
Float( "10000000000.0000000001" ) O número na cadea de texto está dentro do rango de números Float . Non obstante, o número require máis precisión que un flotador pode proporcionar e truncouse. - 1 (Flotación)
Decimal( "10000000000.0000000001" ) O número na cadea de texto está dentro do rango e precisión dun número decimal . 10000000000.0000000001 (decimal)