COBOL2002 言語 拡張仕様編

[目次][索引][前へ][次へ]

6.3.2 内部浮動小数点形式

USAGE句でCOMPUTATIONAL-1,またはCOMPUTATIONAL-2と指定された項目は,内部浮動小数点形式で表現される。このとき,PICTURE句を指定してはならない。内部浮動小数点数字項目に割り当てられる記憶領域のサイズは,USAGE句の指定によって異なる。この関係を次に示す。

表6-1 USAGE句の指定とバイト数

USAGE句の指定 項目が占めるバイト数
COMPUTATIONAL-1 4バイト
COMPUTATIONAL-2 8バイト

4バイトの内部浮動小数点数字項目を単精度内部浮動小数点数字項目,8バイトの内部浮動小数点数字項目を倍精度内部浮動小数点数字項目と呼ぶ。

浮動小数点数が表現できる値の範囲は,COMPUTATIONAL-1のときは,絶対値で約1.2×10-38〜3.4×10+38および0で,COMPUTATIONAL-2のときは,絶対値で約2.2×10-308〜1.8×10+308および0である。また,有効けた数は,単精度と倍精度では異なる。この関係を次に示す。

表6-2 内部浮動小数点数の有効けた数

USAGE句の指定 有効けた数
COMPUTATIONAL-1 約7けた
COMPUTATIONAL-2 約16けた

(注意1)
内部浮動小数点形式は,数値を仮数部と指数部に分けて表現したものである。符号や小数点位置などの表現方法は,10進数値の場合とは異なる。ただし,利用者は,その内部表現形式を考慮する必要はなく,標準データ形式での浮動小数点数(+10.5×106など)を使用する場合と同様に考えればよい。

(注意2)
一般に浮動小数点数は,数値を正確に表現したものではなく,概略の値を表現するもので誤差を含むことが多い。このため,正確な値が要求される事務計算には,浮動小数点数を使用しないほうがよい。浮動小数点数は,小数点位置を固定小数点では明示できない数や,FORTRANプログラムに受け渡す指数部を持った数(FORTRANでの実数)を取り扱う場合に限って使用するとよい。

(注意3)
マシンやOSの種別によって,浮動小数点の演算結果が異なる場合がある。これは,システムの内部浮動小数点演算の精度,および丸め制御の相違によるものである。丸め制御については,「6.8.1 文に共通な指定と規則(浮動小数点形式データを扱う機能)」の「(7) 浮動小数点の丸め制御」を参照。