COBOL2002 言語 拡張仕様編
算術式で,数字項目が書けるところならば,どこにでも浮動小数点項目や浮動小数点数字定数を指定できる。
比較条件に浮動小数点形式データを指定できる。その比較方法は,一般の数字項目の場合に準ずる。
作用対象の組み合わせの可否および比較方法を「表6-3 作用対象の組み合わせによる比較方法」に示す。
条件名条件に内部,または外部浮動小数点項目に関連づけられた条件名を指定できる。
字類条件には,浮動小数点項目を指定できない。
表6-3 作用対象の組み合わせによる比較方法
左辺(右辺) | 右辺(左辺) | |
---|---|---|
外部浮動 小数点項目 |
内部浮動 小数点項目 |
|
集団項目 | A | A |
英字項目 | △ | × |
英数字項目 | △ | × |
英数字編集項目 | △ | × |
数字編集項目 | △ | × |
表意定数(ZERO除く) | △ | × |
表意定数(ZERO) | N | N |
英数字定数 | △ | × |
数字定数 | N | N |
外部10進項目 | N | N |
内部10進項目 | N | N |
2進項目 | N | N |
外部浮動小数点項目 | N | N |
内部浮動小数点項目 | N | N |
算術文で結果を受け入れる項目が,内部,または外部浮動小数点数字項目のときには,その項目に対してROUNDED指定を書いてはならない。
除算およびべき乗を含まない算術文で結果を受け入れる項目が,内部,または外部浮動小数点数字項目のときは,ON SIZE ERROR指定やNOT ON SIZE ERROR指定を書いてはならない。
浮動小数点項目や浮動小数点数字定数が算術演算の対象に指定されている場合は,浮動小数点演算が行われる。この場合には中間結果のデータ項目は適用されない。ただし,浮動小数点項目を作用対象に持つ算術演算で浮動小数点項目が受け取りデータ項目としてだけ指定された場合,算術演算は浮動小数点演算とはならない。
演算の中間結果についてはマニュアル「COBOL2002 ユーザーズガイド」またはマニュアル「COBOL2002 使用の手引 手引編」を参照のこと。
関連する結果のデータ項目が浮動小数点項目以外のとき,けたあふれ条件が発生する。
けたあふれ条件は発生しない。
浮動小数点数が格納先のデータ型で表現できない場合,格納先のデータ型で表現可能な数値へ丸められる。丸めをする際の方法(丸めモード)を次の表に示す。例えば,格納先のデータ型で表現できない元の浮動小数点数をbとし,格納先のデータ型で表現可能な数のうちbの上下で最も近い数をaとc(a,b,cの値はa < b < c の関係にある)とすると,各丸めモードで丸めた結果は次の表のようになる。
表6-4 丸めモード
丸めモード | 丸め処理を行った結果 |
---|---|
最近値 | aとcのうちbに近い方。中間なら偶数の方(結果の最下位が必ず偶数になる)。 |
切り捨て(0方向) | aとcの絶対値が小さい方。 |
注記:a < b < c,aとcは連続した表現可能な数,bは表現できない数
丸めモードはシステムによって異なり,結果として丸められた値が異なる場合があるため注意が必要である。例として,浮動小数点数4.5E0,および5.5E0を小数部がない浮動小数点形式以外の数字項目に代入した結果を次の表に示す。
表6-5 丸めモードにより結果が異なる例
浮動小数点数 | 丸められた結果 | |
---|---|---|
最近値 | 切り捨て | |
4.5E0 | 4 | 4 |
5.5E0 | 6 | 5 |
無限大(+INF,-INF),非数(NaN),および受け取り側作用対象が格納できる範囲を超える浮動小数点数の値については,演算および転記結果は保証しない。
All Rights Reserved. Copyright (C) 2003, 2013, Hitachi, Ltd.