Pular para o conteúdo principal
Se você precisa de cálculos precisos, especialmente se trabalha com dados financeiros ou de negócios que exigem alta precisão, considere usar Decimal.Números de ponto flutuante podem levar a resultados imprecisos, como ilustrado abaixo:
Os tipos equivalentes no ClickHouse e em C são os seguintes:
  • Float32float.
  • Float64double.
Os tipos Float no ClickHouse têm os seguintes aliases:
  • Float32FLOAT, REAL, SINGLE.
  • Float64DOUBLE, DOUBLE PRECISION.
Ao criar tabelas, é possível definir parâmetros numéricos para números de ponto flutuante (por exemplo, FLOAT(12), FLOAT(15, 22), DOUBLE(12), DOUBLE(4, 18)), mas o ClickHouse os ignora.

Uso de números de ponto flutuante

  • Cálculos com números de ponto flutuante podem produzir erro de arredondamento.
  • O resultado do cálculo depende do método de cálculo (do tipo de processador e da arquitetura do sistema computacional).
  • Cálculos de ponto flutuante podem resultar em números como infinito (Inf) e “não é um número” (NaN). Isso deve ser levado em conta ao processar os resultados dos cálculos.
  • Ao interpretar números de ponto flutuante a partir de texto, o resultado pode não ser o número representável pela máquina mais próximo.

NaN e Inf

Ao contrário do SQL padrão, o ClickHouse oferece suporte às seguintes categorias de números de ponto flutuante:
  • Inf – infinito.
  • -Inf — Infinito negativo.
  • NaN — Não é um número.
Consulte as regras de ordenação de NaN na seção cláusula ORDER BY.

BFloat16

BFloat16 é um tipo de dado de ponto flutuante de 16 bits, com expoente de 8 bits, sinal e mantissa de 7 bits. Ele é útil para aplicações de aprendizado de máquina e IA. O ClickHouse oferece suporte a conversões entre Float32 e BFloat16, que podem ser realizadas com as funções toFloat32() ou toBFloat16.
A maioria das outras operações não tem suporte.
Última modificação em 19 de junho de 2026