Типы Float32 | Float64 | BFloat16
Если вам нужны точные вычисления, в частности, если вы работаете с финансовыми или бизнес-данными, требующими высокой точности, вам следует рассмотреть использование Decimal.
Числа с плавающей запятой могут приводить к неточным результатам, как показано ниже:
Эквивалентные типы в ClickHouse и в C приведены ниже:
Float32—float.Float64—double.
Типы Float в ClickHouse имеют следующие алиасы:
Float32—FLOAT,REAL,SINGLE.Float64—DOUBLE,DOUBLE PRECISION.
При создании таблиц можно устанавливать числовые параметры для чисел с плавающей точкой (например, FLOAT(12), FLOAT(15, 22), DOUBLE(12), DOUBLE(4, 18)), но ClickHouse игнорирует их.
Использование чисел с плавающей точкой
- Вычисления с числами с плавающей точкой могут привести к ошибке округления.
- Результат вычисления зависит от метода вычисления (типа процессора и архитектуры компьютерной системы).
- Вычисления с плавающей точкой могут привести к таким числам, как бесконечность (
Inf) и "не-число" (NaN). Это следует учитывать при обработке результатов вычислений. - При разборе чисел с плавающей точкой из текста результат может не быть ближайшим машинно-представимым числом.
NaN и Inf
В отличие от стандартного SQL, ClickHouse поддерживает следующие категории чисел с плавающей точкой:
Inf– Бесконечность.
-Inf— Отрицательная бесконечность.
NaN— Не число.
См. правила сортировки NaN в разделе предложение ORDER BY.
BFloat16
BFloat16 — это 16-битный тип данных с плавающей точкой с 8-битной экспонентой, знаком и 7-битной мантиссой.
Он полезен для приложений машинного обучения и искусственного интеллекта.
ClickHouse поддерживает преобразования между Float32 и BFloat16, которые
могут быть выполнены с использованием функций toFloat32() или toBFloat16.
Большинство других операций не поддерживаются.