COBOL2002 言語 拡張仕様編


6.5 標準けた寄せ規則(浮動小数点形式データを扱う機能)

項目の転記は標準けた寄せ規則に従う。

浮動小数点形式データには,数字項目の標準けた寄せ規則が適用される。

内部浮動小数点項目から固定小数点形式の数字項目(外部10進項目,内部10進項目,または2進項目)への転記で,固定小数点形式の数字項目のけた数が内部浮動小数点数の有効けた数より大きい場合,数字項目の標準けた寄せ規則に従い,小数点位置を合わせる。この小数点位置を合わせることによって,内部浮動小数点数が格納先のデータ型で表現できない場合は,格納先のデータ型で表現可能な数値へ丸められる。このため,固定小数点形式の数字項目には内部浮動小数点数の有効けたを超える下位のけたに誤差を含んだ値が転記され,演算や比較で使用すると期待する結果にならないことがある。この場合,受け取り側作用対象の固定小数点形式の数字項目に内部浮動小数点項目の有効けた数未満のけた数を指定すること。

小数点位置合わせによって,誤差を含んだ値が転記されるプログラム例を次に示す。このプログラムでは,18けたの固定小数点形式の数字項目に対し,内部浮動小数点数として表現できない値998765432100000000を表現可能な998765432100000128に丸めたあと,転記する。

(例)
  01 A  USAGE COMP-2    VALUE 9.987654321E+0.
  01 B  PIC 9(1)V9(9).
  01 C  PIC 9(1)V9(17).
         :
  COMPUTE B = A.
  COMPUTE C = A.
         :

(出力結果)

  B = +9987654321
  C = +998765432100000128
【標準仕様との関連】

COBOL2002 言語 標準仕様編」 「10.5.7 データ項目内でのデータのけた寄せ