Типы Float32 | Float64 | BFloat16
Если вам нужны точные вычисления, особенно если вы работаете с финансовыми или бизнес-данными, требующими высокой точности, вам следует рассмотреть возможность использования Decimal.
Числа с плавающей запятой могут приводить к неточным результатам, как показано ниже:
Эквивалентные типы в ClickHouse и C указаны ниже:
Float32
—float
.Float64
—double
.
Типы с плавающей запятой в 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 clause.
BFloat16
BFloat16
— это 16-битный тип данных с плавающей запятой, имеющий 8-битный экспонент, знак и 7-битный мантиссу.
Он полезен для приложений в области машинного обучения и искусственного интеллекта.
ClickHouse поддерживает преобразования между Float32
и BFloat16
, которые
можно выполнить с помощью функций toFloat32()
или toBFloat16
.
Большинство других операций не поддерживаются.