数値データ・タイプ

変更の開始数値データ型は、2進整数、10進、10進浮動小数点、浮動小数点です。変更の終わり

変更の開始数値データ・タイプは、以下のように分類されます。変更の終わり

変更の開始
  • 厳密な数値データ・タイプ: 2 進整数および 10 進数
  • 10 進浮動小数点数
  • 近似数値データ・タイプ: 浮動小数点
変更の終わり

2 進整数には、短精度整数、長精度整数、および 64 ビット整数があります。 2 進数は整数の厳密な表現です。 変更の開始小数は、固定された精度と桁数で実数を正確に表現するものです。変更の終わり 2進数と10進数は、正確な数値型とみなされます。

変更の開始10 進浮動小数点には、16 桁または 34 桁の有効数字を表すことができる DECFLOAT (16) および DECFLOAT (34) が含まれます。 10 進浮動小数点データ・タイプは、実数の正確な表記と実数の近似値の両方をサポートし、正確な数値タイプまたは近似数値タイプのいずれでもないと見なされます。変更の終わり

浮動小数点数には、単精度および倍精度があります。 浮動小数点数は実数の近似値であり、近似数値型であると見なされます。

すべての数値が、符号、精度、および位取りを持っています。 列値がゼロの場合、符号は正になります。 10 進浮動小数点は、ある数値の特殊値、およびさまざまな指数を持つ同じ数値 (例えば、0.0、0.00、0.0E5、1.0、1.00、1.0000) を持ちます。 精度は、符号を除く 2 進数または 10 進数の合計桁数です。 位取りは、小数点の右側にある 2 進数または 10 進数の合計桁数です。 小数点がない場合、位取りはゼロになります。

短精度整数 (SMALLINT)

短精度整数 は、精度が 15 ビットの 2 進整数です。

小整数の範囲は、-32768から+32767 です。

長精度整数 (INTEGER)

長精度整数 は、精度が 31 ビットの 2 進整数です。

大きな整数の範囲は、-2147483648 から +2147483647 です。

64 ビット整数 (BIGINT)

64 ビット整数は、精度 63 ビットの 2 進整数です。

大きな整数の範囲は、-9223372036854775808から+9223372036854775807 です。

単精度浮動小数点 (REAL)

単精度浮動小数点 数は、短 (32 ビット) 浮動小数点数です。

単精度浮動小数点数の範囲は約 -7.2E+75 ~ 7.2E+75 です。 この範囲で、最大の負の値は約 -5.4E-79 であり、最小の正の値は 約 5.4E-079 になります。

倍精度浮動小数点 (DOUBLE または FLOAT)

倍精度浮動小数点 数は、長 (64 ビット) 浮動小数点数です。

倍精度浮動小数点数の範囲は、 およそ -7.2E+75 から 7.2E+75 です。 この範囲で、最大の負の値は約 -5.4E-79 であり、最小の正の値は 約 5.4E-079 になります。

10 進数 (DECIMAL または NUMERIC)

10 進 数は、暗黙の小数点を持つ パック 10 進数です。

小数点の位置は、その数値の精度と位取りによって決定されます。 数値の小数部分の桁数である位取りが、 負になったり精度数よりも大きくなったりすることはありません。 最大精度は 31 桁です。

10 進列の値は、精度と位取りがすべて同じになります。 10 進変数の範囲または 10 進列内の数値の範囲は、-n か ら +n です。n は、該当する精度と 位取りで表すことのできる最大の正数です。 最大範囲は 1~1031 から 1031~1 です

10 進浮動小数点 (DECFLOAT)

小数浮動小数点数の最大精度は34桁です。

小数浮動小数点数の有効数字の範囲は、それぞれ16桁または34桁の精度、指数の範囲はそれぞれ 10-383 から 10+384 または 10-6143 から 10+6144 です。

10 進浮動小数点数は、有限数のほかに、以下の名前付き特殊値のいずれかを表すことができます。

  • 無限大 - その大きさが無限に大きい数を表す値。
  • 静止 NaN - 無効数条件を生じない、未定義の結果を表す値。
  • シグナル NaN - 数値演算に使用すると無効数条件を生じる、未定義の結果を表す値。

数値がこれらの特殊値のいずれかであるとき、その数値の係数および指数は未定義です。 無限大の符号は有効です (つまり、正の無限大と負の無限大の両方が可能です)。 NaN の符号は、算術演算には意味を持ちません。 INF を INFINITY の代わりに使用できます。

非正規数およびアンダーフロー

10 進浮動小数点データ・タイプには、通常の 10 進浮動小数点値の範囲に収まらない、一式のゼロ以外の数があります。 これらの数を非正規数と呼びます。

非ゼロの数値の調整済み指数が Emin4 より小さい場合、その数値は非正規数と呼ばれます。 これらの非正規数は、すべての演算のオペランドとして受け入れられ、どの演算の結果としても生じる可能性があります。 すべての丸め発生前の結果が非正規数であれば、非正規条件が戻されます。

非正規化の結果の場合、指数の最小値は Emin - (precision-1)(E極小と呼ばれる) になります。ここで、precision は作業精度です。 必要に応じて、指数が Etiny より小さくならないように結果は丸められます。 丸めの過程で結果が不正確になると、アンダーフロー条件が戻されます。 非正規化の結果は必ずしもアンダーフロー条件を戻しませんが、必ず非正規条件を戻します。

計算中に数値がアンダーフローしてゼロになるとき、指数は Etiny になります。 指数の最大値は、影響を受けません。

非正規数の指数の最大値は、結果が非正規数にならない演算中に発生する指数の最小値と同じです。 これは、小数桁数の係数の長さが精度と等しい場合に発生します。

数値ホスト変数

数値ホスト変数は、すべてのホスト言語 (少数の例外がある) で定義することができます。

2 進整数変数は、すべてのホスト言語で定義することができます。

浮動小数点変数は、すべてのホスト言語で定義することができます。 Java™を除くすべての言語は、 System/390® 浮動小数点フォーマットをサポートしています。 アセンブラ、C、C++、PL/I、およびJavaは、IEEE浮動小数点フォーマットもサポートしています。 アセンブラ、C、C++、および PL/I プログラムでは、SQL 処理オプション FLOAT は、浮動小数点変数に System/390 浮動小数点形式または IEEE 浮動小数点形式のデータが含まれているかどうかを Db2 に通知します。 浮動小数点ホスト変数の内容は、FLOAT SQL 処理オプションで指定されているフォーマットに一致する必要があります。

10 進数変数は、Fortran 以外のすべてのホスト言語で定義できます。

COBOL では、10 進数は以下のフォーマットで表すことができます。
  • パック 10 進数フォーマット (USAGE PACKED-DECIMAL または COMP-3 で示す)
  • 外部 10 進フォーマット (USAGE DISPLAY と SIGN LEADING SEPARATE で示す)
  • NATIONAL 10 進数フォーマット (USAGE NATIONAL と SIGN LEADING SEPARATE で示す)

小数浮動小数点変数は、アセンブラ、C、C++、PL/I、およびJavaで定義できます。

数値のストリング表現

数値のストリング表現を一部のコンテキストで使用することができます。 数値のストリング表現が有効であるためには、数値定数の規則に準拠している必要があります。

使用中のエンコード方式によって、数値の文字列表現に使用できる文字の種類が決まります。 ASCII および EBCDIC の場合は、数値 のストリング表現は文字ストリングでなければなりません。 Unicode の場合は、 数値のストリング表現は、文字ストリングか、グラフィック・ストリング のどちらかにすることができます。 したがって、数値についてグラフィック・ストリングを 使用できるのは、コード化スキームが UNICODE の場合だけです。

10 進数が (例えば、CAST 指定を使用して) ストリングにキャストされる場合、暗黙的小数点は、ステートメントの準備時に有効になっているデフォルトの小数点に置き換えられます。

ストリングが (例えば、CAST 指定を使用して) 10 進値にキャストされる場合、ステートメントの準備時に有効になっていたデフォルトの小数点文字がストリングの解釈に使用されます。

浮動小数点または 10 進浮動小数点数が (例えば、CAST 指定を使用して) ストリングにキャストされる場合、ストリングが浮動小数点または 10 進浮動小数点数にキャストされる場合、小数点文字はピリオド (.) でなければなりません。