メインコンテンツまでスキップ
メインコンテンツまでスキップ

Float32 | Float64 | BFloat16 型

注記

正確な計算が必要な場合、特に高い精度を必要とする財務データやビジネスデータを扱う場合は、Decimal の使用を検討すべきです。

Floating Point Numbers は、以下に示すように不正確な結果を引き起こすことがあります:

ClickHouse と C における同等の型は以下の通りです:

  • Float32float.
  • Float64double.

ClickHouse の Float 型には以下のエイリアスがあります:

  • Float32FLOAT, REAL, SINGLE.
  • Float64DOUBLE, 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 は Float32BFloat16 の間の変換をサポートしており、これらは toFloat32()toBFloat16 関数を用いて行うことができます。

注記

ほとんどの他の操作はサポートされていません。