MULTIPLY ステートメントは、数字項目を乗算し、その結果をデータ項目の値として 設定します。
フォーマット 1: MULTIPLY ステートメント .-------------------. V | >>-MULTIPLY--+-ID-1-------+--BY----ID-2--+---------+-+----------> '-リテラル-1--' '-ROUNDED-' >--+----------------------------------------+-----------------> '-+----+--SIZE ERROR--命令ステートメント-1-' '-ON-' >--+---------------------------------------------+------------> '-NOT--+----+--SIZE ERROR--命令ステートメント-2-' '-ON-' >--+--------------+-------------------------------------------->< '-END-MULTIPLY-'
フォーマット 1 では、ID-1 またはリテラル-1 の値は、ID-2 の値によって乗算され、その積は ID-2 に入れられます。ID-2 が連続して現れるたびに、ID-2 が指定されている順に左から右へと乗算が行われます。
フォーマット 2: GIVING 句を含む MULTIPLY ステートメント >>-MULTIPLY--+-ID-1-------+--BY--+-ID-2-------+-----------------> '-リテラル-1--' '-リテラル-2--' .-------------------. V | >--GIVING----ID-3--+---------+-+--------------------------------> '-ROUNDED-' >--+----------------------------------------+-----------------> '-+----+--SIZE ERROR--命令ステートメント-1-' '-ON-' >--+---------------------------------------------+------------> '-NOT--+----+--SIZE ERROR--命令ステートメント-2-' '-ON-' >--+--------------+-------------------------------------------->< '-END-MULTIPLY-'
フォーマット 2 では、ID-1 またはリテラル-1 の値が、ID-2 またはリテラル-2 の値で乗算されます。その後その積は、ID-3 によって参照されるデータ項目の中に保管されます。
すべてのフォーマット全部に関して次のことが言えます。
フォーマット 2 について
GIVING 句の ID である ID-3 は、 MULTIPLY ステートメントの中で日付フィールドを使用することができる唯一の ID です。
ID-3 名が日付フィールドである場合、ID-3 に積がどのように保管されるかについては、日付フィールドに関連する算術演算結果の保管を参照してください。
数字データ項目または数字リテラルを指定できる場所であればどこでも、 浮動小数点データ項目および浮動小数点リテラルも使用できます。
ARITH(COMPAT) コンパイラー・オプションが有効な場合は、オペランドの合成が最大 30 桁になります。 ARITH(EXTEND) コンパイラー・オプションが有効な場合は、オペランドの合成が最大 31 桁になります。 詳細については、算術ステートメントのオペランドおよび「Enterprise COBOL プログラミング・ガイド」の算術の中間結果についてを参照してください。
この明示的範囲終了符号は、MULTIPLY ステートメントの範囲を区切るために使用されます。 END-MULTIPLY 句を使用することによって、 条件的な MULTIPLY ステートメントを他の条件ステートメント内にネストすることができます。 END-MULTIPLY は、命令 MULTIPLY ステートメントと共に使用することもできます。
詳しくは、範囲区切りステートメントを参照してください。