Números e precisão 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.
:::

O tipo de dados “Número” é um número real (por exemplo, 53, 700, 506,2, 7,645). A precisão numérica do Tulip permite que os números contenham zeros à direita (por exemplo, 1,90, 7,300, 36,850, 419,38910).

Detalhes sobre a precisão numérica

Os dados de entrada do tipo “Número” mantêm zeros à direita. Os dados deoperadoresinseridos por meio de Inputs do tipo “Número” preservam os zeros à direita no armazenamento e na exibição em todo o ecossistema do Tulip — até 20 dígitos após a vírgula decimal. Entradas com mais de 20 dígitos serão arredondadas para o 20º dígito mais próximo. Os dados das tabelas são armazenados em um novo tipo de dados preciso chamado Postgres Decimal — em vez de floats.

Os dados dos registros de tabela exibem todos os dígitos após a vírgula decimal. As tabelas exibem todos os dígitos após a vírgula decimal com reticências na largura da coluna. A limitação anterior da experiência do usuário (UX) mostrava apenas os três primeiros dígitos na visualização em grade. Para visualizar todos os dígitos após a vírgula decimal, clique no registro da tabela.

Entradas numéricas e expressões podem controlar o número de casas decimais desejadas. Os criadores de aplicativos podem especificar e impor o número de dígitos na entrada e no cálculo por meio de: * Uma regra de validação de entrada numérica para definir o número exato de casas decimais.

Number input validation for decimals

  • Expressões para gerenciar casas decimais de entradas externas (por exemplo, conectores, dispositivos, máquinas, widgets personalizados) e realizar cálculos matemáticos. Essas expressões incluem ROUND() e GETDECIMALPLACES().
  • Uma nova expressão, TOPLAINTEXT(), exibe decimais com precisão total.

Leia mais sobre essas expressões na seção abaixo: Expressões para gerenciar a precisão.

Limites e comportamento fora dos limites

Valor máximo: JS MAX SAFE INT* Esse é o valor máximo padrão para dados numéricos em JavaScript * Tratamento de valores fora dos limites pela API do Tulip Tables: dados recebidos maiores que esse valor gerarão um erro e não serão armazenados.

Número máximo de dígitos após a vírgula: 20* Esse valor é superior ao número de dígitos em números de precisão flutuante (anteriormente, o Tulip suportava 15 dígitos) e abrange todos os casos de uso conhecidos.* Tratamento de valores fora dos limites pela API do Tulip Tables: dados recebidos com mais de 20 dígitos serão arredondados para o 20º dígito mais próximo

Como a precisão numérica funciona com outros recursos do Tulip?

Dados de entrada com zeros à direita se aplicam apenas a entradas numéricas em aplicativos. Outros fluxos de dados no Tulip lidam com a precisão numérica de maneira diferente:

Dados externos

Os dados que chegam por meio de conectores, máquinas, dispositivos e widgets personalizados ainda são enviados como strings ou números de ponto flutuante, dependendo do tipo de dados fornecido pela fonte. Os dados numéricos são convertidos para decimais do Postgres ao serem armazenados nas tabelas do Tulip e nos registros de conclusão.

Automações

As passarão a suportar zeros à direita ainda em 2025. Atualmente, as automações que realizam cálculos não armazenam zeros à direita.

Expressões para gerenciar a precisão

Os desenvolvedores de aplicativos podem gerenciar os dígitos ao armazenar números no Tulip com a seguinte expressão.

ROUND()

Use ROUND() para especificar o número desejado de casas decimais e adicionar zeros à direita antes de armazenar o valor.:::(Internal) (Private notes)
insert screenshot of example expression]
:::

Os desenvolvedores de aplicativos podem gerenciar os dígitos ao realizar cálculos matemáticos, incluindo médias e somas, com as seguintes expressões.

GETDECIMALPLACES() e ROUND()

Use GETDECIMALPLACES() e/ou ROUND() para gerenciar as casas decimais dos resultados dos cálculos.

TOPLAINTEXT()

Use TOPLAINTEXT() em vez de TOTEXT() para visualizar a precisão decimal completa de um valor numérico, incluindo zeros à direita. Isso ocorre porque TOTEXT() mantém uma implementação compatível com versões anteriores para exibir decimais precisos como números do JavaScript (ou seja, floats) com no máximo 16 dígitos de precisão.

Detalhes técnicos

  • Como parte desse comportamento, as tabelas e preenchimentos do Tulip passaram de “floats” para decimais precisos do Postgres, que são configurados para armazenar até 20 dígitos após a vírgula.
  • Os dados numéricos recebidos de todas as fontes (ou seja, aplicativos, API de tabelas do Tulip, conectores etc.) são armazenados nas tabelas do Tulip como decimais do Postgres e serão arredondados para no máximo 20 dígitos no momento do armazenamento.

Dados históricos

Os dados coletados antes da versão 306 foram totalmente preservados, mantendo os valores numéricos inalterados. Quaisquer novos dados recebidos são arredondados para 20 dígitos após a vírgula decimal.

Pequenas alterações

Existem algumas alterações em casos extremos e ressalvas sobre como os números são tratados nos aplicativos após a implementação da Precisão Numérica, como resultado das diferenças entre decimais e floats:

  1. Expressões: os valores NaN e Infinity do JavaScript não existem em números decimais precisos — consequentemente, as expressões agora gerarão um erro em casos de erros matemáticos (por exemplo, calcular a raiz quadrada de um número negativo ou dividir por 0). a. Isso significa que os desenvolvedores de aplicativos podem precisar atualizar qualquer lógica de casos especiais que trabalhe com NaN e Infinity do JavaScript. Esses não são recursos suportados pela interface, e não recomendamos utilizá-los para lidar com casos matemáticos extremos em seus aplicativos.
  2. Gatilhos: “Mostrar mensagem” agora usa aspas para envolver os números a. Isso significa que agora você poderá exibir zeros à direita em “Mostrar mensagem”.
  3. Tabelas: as exportações em CSV agora mostram números completos (que são maiores que 1e6) – anteriormente, o CSV usava notação exponencial para números grandes (maiores que 1e6). a. Isso significa que seus administradores talvez precisem atualizar os scripts de processamento de CSV para remover quaisquer casos especiais de processamento de números exponenciais, caso existam.
  4. Expressões: TOTEXT e representação numérica – Se você precisar preservar zeros à direita na representação textual, use a nova expressão TOPLAINTEXT(), que coloca os números entre aspas para preservar os zeros à direita.a. Expressões: A função TOTEXT() não coloca os números entre aspas e, portanto, não preserva os zeros à direita. Em vez disso, use a nova função TOPLAINTEXT() para visualizar o número completo com zeros à direita, entre aspas.b. Estamos introduzindo a função TOPLAINTEXT() como uma nova expressão para preservar a compatibilidade com versões anteriores para aplicativos que possam ter usado a expressão TOTEXT().

Se você tiver alguma dúvida sobre como trabalhar com precisão numérica, entre em contato com seu gerente de sucesso do cliente da Tulip ou publique no tópico da Comunidade.

Formatação de números e idioma

A formatação de números varia de acordo com o país, especialmente no que diz respeito aos separadores. Por exemplo, alguns países (EUA, México, China) usam um ponto (.) como separador decimal e uma vírgula (,) como separador de milhares. Outros países (por exemplo, a Europa) usam uma vírgula (,) como separador decimal.

No Tulip, esses formatos numéricos são importantes nos seguintes contextos: 1. Ao exibir um número para um usuário do Tulip, o formato garante que os usuários entendam o valor correto. 2. Ao analisar uma entrada digitada por um usuário, o formato garante que o valor correto seja registrado nos dados do Tulip.

O formato numérico é determinado pelo idioma atual do usuário, conforme definido em suas configurações pessoais. Se os usuários não tiverem escolhido um idioma específico, o Tulip determinará o idioma com base nas configurações do navegador.

Saiba como definir sua preferência de idioma.

Only user-level language settings

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

Formato numérico padrão a partir da versão r360

Dentro do mesmo idioma, pode haver discrepâncias no formato numérico utilizado em diferentes regiões geográficas. Para entender esse comportamento, observe o seguinte para o idioma de sua preferência:

Os seguintes idiomas usam uma vírgula ( , ) como separador decimal padrão:* Búlgaro* Tcheco* Dinamarquês* Holandês* Estoniano* Finlandês* Francês* Alemão* Grego* Húngaro* Indonésio* Italiano* Letão* Lituano* Norueguês* Polonês* Português* Romeno* Russo* Eslovaco* Esloveno* Espanhol* Sueco* Turco* Ucraniano* Vietnamita

Para substituir esse comportamento, entre em contato com o administrador do sistema ou com Tulip Support.

{{snippet.Você encontrou o que estava procurando?}}