Funciones Decimal, Float y Value
Se aplica a: Aplicaciones de Canvas Dataverse Columnas de fórmulas Flujos de Escritorio Aplicaciones basadas en modelos Power Pages 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( Cadena [, Etiqueta de idioma ] )
Flotante( Cadena [, Etiqueta de idioma ] )
Valor( Cadena [, Etiqueta de idioma ] )
- Cadena - Obligatorio. 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( Sin tipo )
Flotante( Sin tipo )
Valor( Sin tipo )
- Sin tipo - Obligatorio. objeto sin tipo 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 |
---|---|---|
Valor("123.456") Decimal("123.456" ) |
Se usará el idioma predeterminado "en-US", que utiliza un punto como separador decimal. | 123,456 (Decimal) |
Valor("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) |
Valor("123,456") Decimal("123,456" ) |
Se usará el idioma predeterminado "en-US", que utiliza una coma como separador de miles. | 123,456 (Decimal) |
Valor("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) |
Valor("12,34%" ) Decimal("12,34%" ) |
El signo de porcentaje al final de la cadena indica que se trata de un porcentaje. | 0,1234 (Decimal) |
Valor("$ 12,34") Decimal("$ 12,34") |
Se omite el símbolo de moneda del idioma actual. | 12,34 (Decimal) |
Valor("24e3") Decimal("24e3" ) |
Notación científica de 24 x 103. | 24 000 (Decimal) |
Valor(verdadero) Decimal(verdadero) |
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 |
---|---|---|
Flotador( 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 (desbordamiento) |
Decimal(1e100) | El mismo problema que con la función Float. | error (desbordamiento) |
Flotador("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 (desbordamiento) |
Flotador( "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) |