Float32 | Float64 | BFloat16 型
注記
正確な計算が必要な場合、特に高い精度を必要とする財務データやビジネスデータを扱う場合は、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 は Float32
と BFloat16
の間の変換をサポートしており、これらは toFloat32()
や toBFloat16
関数を用いて行うことができます。
注記
ほとんどの他の操作はサポートされていません。