Типы 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.
Большинство других операций не поддерживается.
