オペランドのサイズ

各オペランドの最大サイズは、10 進数で 18 桁です。

IBM Extension

IBM Extension ゾーン 10 進数または内部 10 進オペランドの最大サイズは 10 進数で 63 桁です。 End of IBM Extension

End of IBM Extension

各オペランドから、オペランドの合成での 10 進数の桁数を決定できます。 オペランドの合成は、小数点の位置にオペランドを合わせて、さらにそれらオペランドを重ね合わせた結果得られる仮想のデータ項目です。

例えば、各項目がデータ部で次のように定義されているとします。
A  PICTURE 9(7)V9(5).
B  PICTURE 9(11)V99.
C  PICTURE 9(12)V9(3).
次のステートメントを実行すると、オペランドの合成は 17 桁の 10 進数になります。
ADD A B TO C
これは、次のような暗黙の記述を持っています。
Composite-of-Operands PICTURE 9(12)V9(5).

オペランドを合成したものが 18 桁以下であれば、実行時に有効数字が失われないように十分な桁が保たれます。

IBM Extension
IBM Extension

(デフォルト) コンパイラー・オプション *NOEXTEND または PROCESS ステートメント・オプション NOEXTEND が指定されている場合、 オペランドの合成は 10 進数で最大 30 桁までにできます。

算術計算モード・コンパイラー・オプション *EXTEND31 または PROCESS ステートメント・オプション EXTEND31 が指定されている場合、 オペランドの合成は 10 進数で最大 31 桁まで可能です。

変更の始まり算術計算モード・コンパイラー・オプション *EXTEND31FULL または PROCESS ステートメント・オプション EXTEND31FULL が指定されている場合、オペランドの合成は 10 進数で最大 34 桁まで可能です。変更の終わり

算術計算モード・コンパイラー・オプション *EXTEND63 または PROCESS ステートメント・オ プション EXTEND63 が指定されている場合、オペランドの合成は 10 進数で 最大 63 桁まで可能です。

注: オペランドの合成が指定された最大値を超えると、実行中に有効数字が失われる場合があります。
End of IBM Extension
End of IBM Extension

以下の表は、算術ステートメント内でオペランドの合成に使用できる 10 進数の最大桁数を示しています。

コンパイラー・オプション / 処理ステートメント 合成の最大長 (10 進数)
*NOEXTEND/NOEXTEND

18

IBM Extension

IBM Extension 30 End of IBM Extension

End of IBM Extension
*EXTEND31/EXTEND31

18

IBM Extension

IBM Extension 31 End of IBM Extension

End of IBM Extension
変更の始まり*EXTEND31FULL/EXTEND31FULL変更の終わり
IBM Extension

IBM Extension 34 End of IBM Extension

End of IBM Extension
*EXTEND63/EXTEND63
IBM Extension

IBM Extension 63 End of IBM Extension

End of IBM Extension

以下のリストには、算術ステートメントにおけるオペランドの合成の決め方が示されています。

ステートメント
オペランドの合成の決め方
ADD
与えられたステートメントの中のすべてのオペランド (GIVING という語の後に続くものは除く) を重ね合わせることによって決める。
COMPUTE
制約は適用されない。
DIVIDE
REMAINDER データ項目以外のすべての受け入れデータ項目を重ね合わせることによって決める。
MULTIPLY
すべての受け入れデータ項目を重ね合わせることによって決める。
SUBTRACT
与えられたステートメントの中のすべてのオペランド (GIVING という語の後に続くものは除く) を重ね合わせることによって決める。

どの算術ステートメントの場合にも、データを定義する際には、所要の精度の最終結果が得られるよう、十分な桁数と小数部分を指定することが重要です。 演算の精度の詳細については 付録 B. 中間結果と算術精度を参照してください。