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