16.20 - FLOAT/REAL/DOUBLE PRECISIONデータ型 - Teradata Vantage NewSQL Engine

Teradata Vantage™ データ タイプおよびリテラル

prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
プログラミング リファレンス
featnum
B035-1143-162K-JPN

目的

2.226 x 10-308~1.797 x 10308の範囲の値を符号/絶対値の書式で表わします。

構文



attributes
適切なデータ型属性、列記憶属性、または列制約属性。
具体的な説明については、主なデータ型属性記憶属性と制約属性を参照してください。

ANSI準拠

REALおよびDOUBLE PRECISIONは、ANSI SQL:2011規格に含まれています。FLOATはREALおよびDOUBLE PRECISIONに関するTeradataの同義語です。

浮動小数点の格納と処理

浮動小数点値を収めるために、8バイトが使用されます。

浮動小数点の値は、内部的にはIEEEの浮動小数点の形式で格納され、処理されます。浮動小数点の値は、最下位のバイトを先にして、1ビットは仮数の符号用に、11ビットは指数用に、52ビットは仮数用に格納されます。仮数符号は最高位ビットの位置にあり、指数の符号は指数フィールドの一部になっています。これは、(1024-指数)によって符号が決まる1024加算表記です。

同じ絶対値の負数は、符号用のビットだけが正数と異なります。

Teradata Databaseは、クライアントの浮動小数点の正規化値をサポートしていますが、非正規化値はサポートしていません。

IEEE浮動小数点値の範囲は、クライアント システムがサポートしている範囲よりも広い場合があります。したがって、Teradata Databaseで作成して格納した値を、クライアント システムへの送信用に変換しようとすると、エラー メッセージが返されることもあります。

FLOAT/REAL/DOUBLE PRECISIONの外部表現

以下のテーブルは、TeradataのFLOAT/REAL/DOUBLE PRECISIONデータ型のクライアント表現を示したものです。

アプリケーション定義とクライアント データ型を判別するのは、アプリケーション プログラマの責任です。

クライアントCPUアーキテクチャ クライアント表記
IBMメインフレーム 8バイト、64ビット(倍精度)の浮動小数点数(最上位バイトが最初)。以下の属性があります。
  • 1ビットは、小数部の符号を表わします。
  • 7ビットは、16のべき乗指数の符号なしの実際の値にX’40’を加算して保管されたものを表わします。
  • 56ビットは、符号なし小数部を表わします。
UTS 8バイト、64ビット(倍精度)の浮動小数点数(最上位バイトが最初)。以下の属性があります。
  • 1ビットは、小数部の符号を表わします。
  • 7ビットは、16のべき乗指数の符号なしの実際の値にX’40’を加算して保管されたものを表わします。
  • 56ビットは、符号なし小数部を表わします。
  • RISC
  • Motorola 68000
  • WE 32000
8バイト、64ビット(倍精度)の浮動小数点数(最上位バイトが最初)。以下の属性があります。
  • 1ビットは、小数部の符号を表わします。
  • 11ビットは、2のべき乗指数の符号なしの実際の値にX’3FFH’を加算して保管されたものを表わします。
  • 52ビットは、符号なし小数部を表わします。
Intel 8バイト、64ビット(倍精度)の浮動小数点数(最下位バイトが最初)。以下の属性があります。
  • 1ビットは、小数部の符号を表わします。
  • 11ビットは、2のべき乗指数の符号なしの実際の値にX’3FFH’を加算して保管されたものを表わします。
  • 52ビットは、符号なし小数部を表わします。

例: FLOATデータ型

次に示すテーブル定義では、SalaryFactor列はFLOATデータ型です。

CREATE TABLE Salaries
  (Id CHAR(9)
  ,SalaryFactor FLOAT BETWEEN .1 AND 1E1 );

関連トピック

詳細情報 参照先
比較と計算における小数点値に関する潜在的な問題 浮動小数点値に対する演算
四捨五入とFLOAT/REAL/DOUBLE PRECISIONタイプ 切り上げ/切り捨て