ILE COBOL 解説書

+----------------------------------IBM 拡張----------------------------------+

浮動小数点データと中間結果

浮動小数点命令は、以下の任意の条件が真の場合、算術式を計算するために使用されます。

算術式の任意の演算が浮動小数点で計算された場合、 その式全体は、すべてのオペランドが浮動小数点に変換されたかのように、 また演算が浮動小数点命令を使用して評価されたかのように、計算されます。

式が浮動小数点で計算される場合は、 式の任意の受け入れ項目またはオペランドが COMP-1 でないとき、 または乗算または指数演算が式に現れたとき、倍精度浮動小数点が使用されます。 算術式の 1 つの演算で倍精度浮動小数点が使用された場合は、式のすべての演算が、 倍精度浮動小数点命令が使用されたかのように計算されます。

浮動小数点の指数は、常に倍精度浮動小数点演算を使用して評価されます。

負の数の、小数の累乗の値は未定義になります。 たとえば、(-2) ** 3 は -8 になりますが、(-2) ** (3.000001) は未定義になります。 指数が浮動小数点で評価され、その指数の値が未定義になる (上記の例のように) 可能性がある場合、 その指数の値が実際に整数であるかどうかを判別するため、実行時に評価されます。

浮動小数点の数字関数は、常に倍精度浮動小数点値を戻します。 浮動小数点関数および固定小数点関数のリストについては、「WebSphere Development Studio: ILE COBOL プログラマーの手引き」の『数字関数のタイプ』を参照してください。

算術式は、算術ステートメント以外のコンテキストの中に出てきてもかまいません。 たとえば、算術式を IF ステートメントで使用できます。 このようなステートメントでは、中間結果、浮動小数点、および倍精度浮動小数点に関する規則は、次の変更とともに適用されます。

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 拡張-------------------------------+


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]