Float32 | Float64 | BFloat16 类型
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 子句。
BFloat16
BFloat16
是一种 16 位的浮点数据类型,具有 8 位指数、符号和 7 位尾数。
它在机器学习和人工智能应用中非常有用。
ClickHouse 支持 Float32
和 BFloat16
之间的转换,可以使用 toFloat32()
或 toBFloat16
函数进行转换。
备注
大多数其他操作不被支持。