Float32 | Float64 | BFloat16 Types
注記
正確な計算が必要な場合、特に高精度を要求する財務データやビジネスデータを扱う場合は、代わりに Decimal の使用を検討してください。
Floating Point Numbers は、以下の例のように不正確な結果を引き起こす可能性があります:
ClickHouseとCにおける対応する型は以下の通りです:
Float32
—float
.Float64
—double
.
ClickHouseにおけるFloat型の別名は次の通りです:
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
は、8ビットの指数、符号、7ビットの仮数を持つ16ビット浮動小数点データ型です。
機械学習やAIアプリケーションに役立ちます。
ClickHouseは、toFloat32()
または toBFloat16
関数を使用して Float32
と BFloat16
の間の変換をサポートしています。
注記
その他の操作はサポートされていないものがほとんどです。