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 函数进行转换。
注意
大多数其他操作都不受支持。