オペランドのサイズ

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

IBM Extension

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

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

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

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

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

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

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

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

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

18

IBM Extension

30

End of IBM Extension
*EXTEND31/EXTEND31

18

IBM Extension

31

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

34

End of IBM Extension
*EXTEND63/EXTEND63
IBM Extension

63

End of IBM Extension

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

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

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