Funciones Decimal, Float y Value

Se aplica a: Aplicaciones de lienzo Columnas de fórmulas de Dataverse Flujos de escritorio Aplicaciones basadas en modelos Power Platform CLI

Convierte una cadena de texto u otros tipos en un número.

Descripción

Nota

Power Apps solo es compatible con la función Value y devuelve un valor Float. Pronto se agregará la compatibilidad con las funciones Decimal y Float.

Use las funciones Decimal, Float y Value para convertir una cadena de texto que contiene caracteres numéricos en un valor numérico. Utilice esta función cuando necesite realizar cálculos con los números que los usuarios escriben como texto. Estas funciones también se pueden utilizar para convertir otros tipos a un número, como fecha/hora y booleano.

La función Value devolverá el tipo de datos numéricos predeterminado para el host de Power Fx que está usando, que generalmente es Decimal y la mejor opción para la mayoría de situaciones. Use las funciones Decimal y Float cuando necesite un tipo de datos específico para un escenario particular, como un cálculo científico con un número muy grande. Para obtener más detalles sobre cómo trabajar con estos tipos de datos, consulte la sección Números de Tipos de datos.

Los distintos idiomas interpretan los signos , y . de forma diferente. De manera predeterminada, el texto se interpreta en el idioma del usuario actual. Para especificar el idioma que se usará con una etiqueta de idioma, puede utilizar las mismas etiquetas de lenguaje que devuelve la función Language.

Notas sobre el formato de la cadena:

  • La cadena puede tener como prefijo el símbolo de moneda del idioma actual. El símbolo de moneda se omite. Los símbolos de moneda de los demás idiomas no se omiten.
  • La cadena se puede incluir un signo de porcentaje (%) al final, que indica que es un porcentaje. El número se dividirá entre 100 antes de devolverse. No se pueden mezclar porcentajes y símbolos de moneda.
  • La cadena puede estar en notación científica; 12 x 103 se expresa como "12e3".

Si el número no tiene el formato adecuado, estas funciones devolverán un error.

Para convertir valores de fecha y hora, use las funciones DateValue, TimeValue o DateTimeValue.

Sintaxis

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

  • String: requerido. Cadena que se convertirá en un valor numérico.
  • LanguageTag (opcional). Etiqueta del idioma en el que se va a analizar la cadena. Si no se especifica, se usa el idioma del usuario actual.

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

  • Untyped - requerido. Objeto Untyped que representa un número. Los valores aceptables dependen del proveedor sin tipo. Para JSON, se espera que el objeto sin tipo sea un número JSON, un valor booleano o texto que se pueda convertir en un número. Tenga en cuenta que los formatos relacionados con la configuración regional son consideraciones importantes al comunicarse con sistemas externos.

Ejemplos

El usuario que ejecuta estas fórmulas se encuentra en Estados Unidos y seleccionó inglés como idioma. La función Language muestra "en-US". El host de Power Fx usa Decimal de forma predeterminada.

Value y Decimal

Dado que estamos utilizando un host que tiene Decimal como valor predeterminado, Value y Decimal devolverán los mismos resultados.

Fórmula Description Result
Value( "123.456" )
Decimal( "123,456" )
Se usará el idioma predeterminado "en-US", que utiliza un punto como separador decimal. 123,456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123,456", "es-ES" )
"es-Es" es la etiqueta de idioma para español de España. En España, el punto es el separador de miles. 123,456 (Decimal)
Value( "123,456" )
Decimal( "123,456" )
Se usará el idioma predeterminado "en-US", que utiliza una coma como separador de miles. 123,456 (Decimal)
Value( "123.456", "es-ES" )
Decimal( "123,456", "es-ES" )
"es-Es" es la etiqueta de idioma para español de España. En España, la coma es el separador decimal. 123,456 (Decimal)
Value( "12.34%" )
Decimal( "12,34 %" )
El signo de porcentaje al final de la cadena indica que se trata de un porcentaje. 0,1234 (Decimal)
Value( "$ 12.34" )
Decimal( "12,34 $" )
Se omite el símbolo de moneda del idioma actual. 12,34 (Decimal)
Value( "24e3" )
Decimal( "24e3" )
Notación científica de 24 x 103. 24 000 (Decimal)
Value( true )
Decimal( true )
Convierte un booleano en un número, 0 para false y 1 para true 1 Decimal

Float

La función Float tendrá resultados muy parecidos a los anteriores. Dado que 123,456 no se puede representar con precisión en Float, el resultado es una aproximación muy cercana (123,456000000000003069544618484E2) y los cálculos de errores de redondeo compuestos podrían dar como resultado un resultado inesperado. El tipo resultante será Float en su lugar.

Donde las cosas divergen es si se utilizan números mayores o menores.

Fórmula Description Result
Float( 1e100 ) Debido a que el número literal 1e100 supera el rango de un Decimal, esto genera un error antes de llamar a la función Float. error (overflow)
Decimal( 1e100 ) El mismo problema que con la función Float. error (overflow)
Float( "1e100" ) El número en la cadena de texto está dentro del rango de números de Float. 1e100 Float
Decimal( "1e100" ) El número en la cadena de texto supera el rango de números de Decimal. error (overflow)
Float( "10000000000,0000000001" ) El número en la cadena de texto está dentro del rango de números de Float. Sin embargo, el número requiere más precisión de la que puede proporcionar un Float y será truncado. 1 (Float)
Decimal( "10000000000.0000000001" ) El número en la cadena de texto está dentro del rango y la precisión de números de Decimal. 10000000000,0000000001 (Decimal)