Перейти к основному содержимому
Перейти к основному содержимому

Типы Float32 | Float64 | BFloat16

примечание

Если вам нужны точные вычисления, особенно если вы работаете с финансовыми или бизнес-данными, требующими высокой точности, вам следует рассмотреть возможность использования Decimal.

Числа с плавающей запятой могут приводить к неточным результатам, как показано ниже:

Эквивалентные типы в ClickHouse и C указаны ниже:

  • Float32float.
  • Float64double.

Типы с плавающей запятой в ClickHouse имеют следующие алиасы:

  • Float32FLOAT, REAL, SINGLE.
  • Float64DOUBLE, 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.

примечание

Большинство других операций не поддерживаются.