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