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

Float32 | Float64 | BFloat16 Types

注記

正確な計算が必要な場合、特に高精度を要求する財務データやビジネスデータを扱う場合は、代わりに 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は、toFloat32() または toBFloat16 関数を使用して Float32BFloat16 の間の変換をサポートしています。

注記

その他の操作はサポートされていないものがほとんどです。