+----------------------------------IBM 拡張----------------------------------+
浮動小数点命令は、以下の任意の条件が真の場合、算術式を計算するために使用されます。
算術式の任意の演算が浮動小数点で計算された場合、 その式全体は、すべてのオペランドが浮動小数点に変換されたかのように、 また演算が浮動小数点命令を使用して評価されたかのように、計算されます。
式が浮動小数点で計算される場合は、 式の任意の受け入れ項目またはオペランドが COMP-1 でないとき、 または乗算または指数演算が式に現れたとき、倍精度浮動小数点が使用されます。 算術式の 1 つの演算で倍精度浮動小数点が使用された場合は、式のすべての演算が、 倍精度浮動小数点命令が使用されたかのように計算されます。
浮動小数点の指数は、常に倍精度浮動小数点演算を使用して評価されます。
負の数の、小数の累乗の値は未定義になります。 たとえば、(-2) ** 3 は -8 になりますが、(-2) ** (3.000001) は未定義になります。 指数が浮動小数点で評価され、その指数の値が未定義になる (上記の例のように) 可能性がある場合、 その指数の値が実際に整数であるかどうかを判別するため、実行時に評価されます。
浮動小数点の数字関数は、常に倍精度浮動小数点値を戻します。 浮動小数点関数および固定小数点関数のリストについては、「WebSphere Development Studio: ILE COBOL プログラマーの手引き」の『数字関数のタイプ』を参照してください。
算術式は、算術ステートメント以外のコンテキストの中に出てきてもかまいません。 たとえば、算術式を IF ステートメントで使用できます。 このようなステートメントでは、中間結果、浮動小数点、および倍精度浮動小数点に関する規則は、次の変更とともに適用されます。
たとえば、次のステートメントの場合、
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.
+------------------------------End of IBM 拡張-------------------------------+