Si necesitas cálculos precisos, especialmente si trabajas con datos financieros o empresariales que requieren una alta precisión, deberías considerar usar Decimal en su lugar.Los números de coma flotante pueden dar lugar a resultados imprecisos, como se muestra a continuación:
Float32—float.Float64—double.
Float32—FLOAT,REAL,SINGLE.Float64—DOUBLE,DOUBLE PRECISION.
FLOAT(12), FLOAT(15, 22), DOUBLE(12), DOUBLE(4, 18)), pero ClickHouse los ignora.
Uso de números de coma flotante
- Los cálculos con números de coma flotante pueden producir errores de redondeo.
- El resultado del cálculo depende del método de cálculo (el tipo de procesador y la arquitectura del sistema).
- Los cálculos en coma flotante pueden dar lugar a valores como infinito (
Inf) y “no es un número” (NaN). Esto debe tenerse en cuenta al procesar los resultados de los cálculos. - Al interpretar números de coma flotante a partir de texto, es posible que el resultado no sea el número representable por la máquina más cercano.
NaN e Inf
Inf– Infinito.
-Inf— Infinito negativo.
NaN— No es un número.
NaN en la sección cláusula ORDER BY.
BFloat16
BFloat16 es un tipo de dato de coma flotante de 16 bits con exponente de 8 bits, bit de signo y mantisa de 7 bits.
Es útil para aplicaciones de aprendizaje automático e IA.
ClickHouse admite conversiones entre Float32 y BFloat16, que
pueden realizarse mediante las funciones toFloat32() o toBFloat16.
La mayoría de las demás operaciones no son compatibles.