演算が比較 (比較演算子を含んでいるもの) の場合、 比較する数値式は、データ項目、演算式、関数参照、あるいはそれらの組み合わせのいずれであれ、 評価全体のコンテキストの中での実際のオペランド (被比較項目) になります。 これは省略比較にも当てはまります。 1 つの被比較項目は明示的に示されない場合がありますが、両方とも比較のオペランドです。 ILE COBOL で比較を含む式を使用する際に、被比較項目の 1 つが浮動小数点であるか、または浮動小数点に解決されるものである場合には、 その式は浮動小数点として評価されます。 そうでない場合は、固定小数点として計算されます。
たとえば、次の例を考えてみます。
IF (A + B) = C or D = (E + F)
ここには 2 つの比較があるため、被比較項目は 4 つになります。 4 つの被比較項目のうちのいずれかが浮動小数点値または浮動小数点値に解決されるものなら、 この IF ステートメントは浮動小数点で実行されます。 そうでない場合は、すべての演算が固定小数点で実行されます。
次の EVALUATE ステートメントの場合、
EVALUATE (A + D) WHEN (B + E) THRU C WHEN (F / G) THRU (H * I) . . . END-EVALUATE.
EVALUATE ステートメントはそれに相当する 1 個の IF ステートメント、または一連の IF ステートメントに書き換え可能です。 この例では、相当する IF ステートメントは次のようになります。
if ( (A + D) >= (B + E) ) AND ( (A + D) <= C) if ( (A + D) >= (F / G) ) AND ( (A + D) <= (H * I) )
このように、上記の IF ステートメントの規則に従って各 IF ステートメントの被比較項目を調べ、 その IF ステートメントのすべての演算が固定小数点か浮動小数点かを判別する必要があります。
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.