Números y precisión numérica

Prev Next

:::(Info)Following Release 306, Tulip is changing the way numbers are stored in Tables and Completion Records to support capturing, storing, and displaying trailing zeros.
:::

El tipo de datos «Número» es un número real (por ejemplo, 53, 700, 506,2, 7,645). La precisión numérica de Tulip permite que los números contengan ceros a la derecha (p. ej., 1,90; 7,300; 36,850; 419,38910).

Detalles sobre la precisión numérica

Los datos de entrada de tipo «Número» conservan los ceros a la derecha. Los datos introducidos mediante el operador «Número» Inputconservan los ceros a la derecha tanto en el almacenamiento como en la visualización en todo el ecosistema de Tulip, hasta 20 dígitos después de la coma decimal. Las entradas de más de 20 dígitos se redondearán al vigésimo dígito más cercano. Los datos de las tablas se almacenan en un nuevo tipo de datos de precisión denominado «Postgres Decimal», en lugar de en flotantes.

Los datos de los registros de tabla muestran todos los dígitos después de la coma decimal. Las tablas muestran todos los dígitos después de la coma decimal con puntos suspensivos al alcanzar el ancho de la columna. La limitación anterior de la experiencia de usuario (UX) solo mostraba los tres primeros dígitos en la vista de cuadrícula. Para ver todos los dígitos después de la coma decimal, haz clic en el registro de la tabla.

Los campos de entrada numéricos y las expresiones pueden controlar el número de decimales deseados. Los creadores de aplicaciones pueden especificar y aplicar el número de decimales en la entrada y el cálculo mediante: * Una regla de validación de campo numérico para establecer el número exacto de decimales.

Number input validation for decimals

  • Expresiones para gestionar los decimales de entradas externas (p. ej., conectores, dispositivos, máquinas, widgets personalizados) y realizar cálculos matemáticos. Estas expresiones incluyen ROUND() y GETDECIMALPLACES().
  • Una nueva expresión, TOPLAINTEXT(), genera decimales con precisión total.

Más información sobre estas expresiones en la sección siguiente: Expresiones para gestionar la precisión.

Límites y comportamiento fuera de rango

Valor máximo: JS MAX SAFE INT* Este es el valor máximo estándar para datos numéricos en JavaScript * Gestión de valores fuera de rango de la API de Tulip Tables: los datos entrantes que superen este valor generarán un error y no se almacenarán.

Número máximo de dígitos después de la coma: 20* Este valor supera el número de dígitos de los números flotantes (anteriormente, Tulip admitía 15 dígitos) y abarca todos los casos de uso conocidos.* Gestión de valores fuera de rango de la API de Tulip Tables: los datos entrantes con más de 20 dígitos se redondearán al vigésimo dígito más cercano

¿Cómo funciona la precisión numérica con otras funciones de Tulip?

Los datos de entrada con ceros a la derecha solo se aplican a los campos de entrada numéricos en las aplicaciones. Otros flujos de datos en Tulip gestionan la precisión numérica de forma diferente:

Datos externos

Los datos que llegan a través de conectores, máquinas, dispositivos y widgets personalizados siguen enviándose como cadenas de caracteres o números de tipo «float», dependiendo del tipo de datos proporcionado por la fuente. Los datos numéricos se convierten a decimales de Postgres al almacenarse en las tablas de Tulip y en los registros de finalización.

Automatizaciones

Las Automations admitirán los ceros a la derecha más adelante, en 2025. Actualmente, las automatizaciones que realizan cálculos no almacenan ceros a la derecha.

Expresiones para gestionar la precisión

Los creadores de aplicaciones pueden gestionar los dígitos al almacenar números en Tulip mediante la siguiente expresión.

ROUND()

Utiliza ROUND() para especificar el número deseado de decimales y añadir ceros a la derecha antes de almacenar el valor.:::(Internal) (Private notes)
insert screenshot of example expression]
:::

Los desarrolladores de aplicaciones pueden gestionar los dígitos al realizar cálculos matemáticos, incluidos promedios y sumas, con las siguientes expresiones.

GETDECIMALPLACES() y ROUND()

Utiliza GETDECIMALPLACES() y/o ROUND() para gestionar los decimales de los resultados de los cálculos.

TOPLAINTEXT()

Utiliza TOPLAINTEXT() en lugar de TOTEXT() para ver todos los decimales de precisión de un valor numérico, incluidos los ceros a la derecha. Esto se debe a que TOTEXT() mantiene una implementación compatible con versiones anteriores para mostrar decimales precisos como números de JavaScript (es decir, flotantes) con una precisión máxima de 16 dígitos.

Detalles técnicos

  • Como parte de este comportamiento, las tablas y las completaciones de Tulip han pasado de utilizar «números flotantes» a decimales precisos de Postgres, que están configurados para almacenar hasta 20 dígitos después de la coma.
  • Los datos numéricos entrantes procedentes de todas las fuentes (es decir, aplicaciones, la API de Tulip Tables, conectores, etc.) se almacenan en las tablas de Tulip como decimales de Postgres y se redondearán a un máximo de 20 dígitos en el momento del almacenamiento.

Datos históricos

Los datos recopilados antes de la versión 306 se han conservado íntegramente, manteniendo los mismos valores numéricos. Cualquier dato nuevo que se reciba se redondeará a 20 dígitos después de la coma.

Cambios menores

Existen algunos cambios en casos extremos y advertencias sobre cómo se gestionan los números en las aplicaciones tras la implantación de la precisión numérica, como consecuencia de las diferencias entre los decimales y los números flotantes:

  1. Expresiones: los valores NaN e Infinity de JavaScript no existen en los números decimales precisos; por lo tanto, las expresiones ahora generarán un error en casos de errores matemáticos (por ejemplo, al calcular la raíz cuadrada de un número negativo o al dividir entre 0). a. Esto significa que los desarrolladores de aplicaciones quizá tengan que actualizar cualquier lógica de casos especiales que utilice los valores NaN e Infinity de JavaScript. Estos no son una interfaz compatible, y no recomendamos utilizarlos para gestionar casos matemáticos extremos en vuestras aplicaciones.
  2. Desencadenantes: «Mostrar mensaje» ahora utiliza comillas para encerrar los números. a. Esto significa que ahora podrás mostrar los ceros finales en «Mostrar mensaje».
  3. Tablas: Las exportaciones a CSV ahora muestran números completos (que superan 1e6); anteriormente, el CSV utilizaba notación exponencial para números grandes (superiores a 1e6). a. Esto significa que es posible que tus administradores tengan que actualizar los scripts de procesamiento de CSV para eliminar cualquier caso especial relacionado con el procesamiento de números exponenciales, si los tenían.
  4. Expresiones: TOTEXT y representación numérica. Si necesitas conservar los ceros finales en la representación textual, utiliza la nueva expresión TOPLAINTEXT(), que envuelve los números entre comillas para conservar los ceros finales.a. Expresiones: TOTEXT() no envuelve los números entre comillas y, por lo tanto, no conserva los ceros finales. En su lugar, utilice la nueva función TOPLAINTEXT() para ver el número completo con ceros a la derecha, entre comillas.b. Introducimos TOPLAINTEXT() como una nueva expresión para mantener la compatibilidad con versiones anteriores para aquellas aplicaciones que pudieran haber estado utilizando la expresión TOTEXT().

Si tienes alguna pregunta sobre cómo trabajar con la precisión de los números, ponte en contacto con tu gestor de éxito del cliente de Tulip o publica un mensaje en el hilo de la comunidad.

Formato de números e idioma

El formato de los números varía según el país, especialmente en lo que respecta a los separadores. Por ejemplo, algunos países (EE. UU., México, China) utilizan un punto (.) como separador decimal y una coma (,) como separador de miles. Otros países (por ejemplo, Europa) utilizan una coma (,) como separador decimal.

En Tulip, estos formatos numéricos son importantes en los siguientes contextos: 1. Al mostrar un número a un usuario de Tulip, el formato garantiza que los usuarios comprendan el valor correcto. 2. Al analizar una entrada introducida por un usuario, el formato garantiza que se registre el valor correcto en los datos de Tulip.

El formato numérico viene determinado por el idioma del usuario actual, tal y como se define en su configuración personal. Si los usuarios no han seleccionado un idioma específico, Tulip deducirá el idioma en función de la configuración del navegador.

Descubre cómo configurar tu idioma preferido.

Only user-level language settings

Note that there is no default instance-level or workspace-level language setting.

Formato numérico predeterminado a partir de la versión r360

Dentro de un mismo idioma, puede haber discrepancias en el formato numérico utilizado en diferentes ubicaciones geográficas. Para comprender este comportamiento, ten en cuenta lo siguiente para el idioma que elijas:

Los siguientes idiomas utilizan por defecto una coma ( , ) como separador decimal:* búlgaro* checo* danés* neerlandés* estonio* finés* francés* alemán* griego* húngaro* indonesio* italiano* letón* lituano* noruego* polaco* portugués* rumano* ruso* eslovaco* esloveno* español* sueco* turco* ucraniano* vietnamita

Para anular este comportamiento, ponte en contacto con el administrador del sistema o envía un correo electrónico a Tulip Support.

{{snippet.¿Has encontrado lo que buscabas?}}