算術式の任意の演算が浮動小数点で計算された場合、 その式全体は、すべてのオペランドが浮動小数点に変換されたかのように、 また演算が浮動小数点命令を使用して評価されたかのように、計算されます。
式が浮動小数点で計算される場合は、 式の任意の受け入れ項目またはオペランドが COMP-1 でないとき、 または乗算または指数演算が式に現れたとき、倍精度浮動小数点が使用されます。 算術式の 1 つの演算で倍精度浮動小数点が使用された場合は、式のすべての演算が、 倍精度浮動小数点命令が使用されたかのように計算されます。
浮動小数点の指数は、常に倍精度浮動小数点演算を使用して評価されます。
負の数の、小数の累乗の値は未定義になります。 例えば、(-2) ** 3 は -8 になりますが、(-2) ** (3.000001) は未定義になります。 指数が浮動小数点で評価され、その指数の値が未定義になる (上記の例のように) 可能性がある場合、 その指数の値が実際に整数であるかどうかを判別するため、実行時に評価されます。
浮動小数点の数字関数は、常に倍精度浮動小数点値を戻します。 浮動小数点関数および固定小数点関数のリストについては、「IBM Rational Development Studio for i: ILE COBOL プログラマーの手引き」の『数字関数のタイプ』を参照してください。
IF operand-1 = expression-1 THEN . . .
オペランド -1 が COMP-2 で定義されているデータ名で、式 -1 が固定小数点オペランドのみを含んでいる場合、
浮動小数点演算に関する規則は、式 -1 が浮動小数点オペランドと比較されているため、式 -1 に適用されます。EVALUATE expression-1
WHEN expression-2 THRU expression-3
WHEN expression-4
.
.
.
END-EVALUATE
同等の IF ステートメントは、次のようになります。
IF expression-1 >= expression-2 AND
expression-1 <= expression-3
IF expression-1 = expression-4
then for each IF statement, the comparands must be looked at
to determine if all the arithmetic in that IF statement will
be fixed-point or floating-point.