このドキュメントでは、次のトピックについて説明します。
関連ステートメント:ADD
| COMPRESS
| COMPUTE
| EXAMINE
| MOVE
| MOVE ALL
| MULTIPLY
| RESET
| SEPARATE
| SUBTRACT
関連機能グループ:算術演算とデータ移動操作
DIVIDE
ステートメントは、2 つのオペランドを除算するために使用します。
注意:
ゼロによる除算に関する注意事項:ゼロになっている除数(operand1
)を使用しようとすると、エラーメッセージまたは結果としてゼロが返されます。いずれが返されるかは、セッションパラメータ ZD
の設定によって決まります(詳細については、『パラメータリファレンス』ドキュメントを参照)。
DIVIDE [ROUNDED ] |
INTO operand2 |
構文図で使用されている記号については、「構文記号」を参照してください。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 |
C | S | A | N | N | P | I | F | ○ | × | |||||||||
operand2 |
S | A | M | N | P | I | F | ○ | × |
構文要素の説明:
構文要素 | 説明 |
---|---|
arithmetic-expression |
COMPUTE ステートメントの「算術演算式」も参照してください。
|
operand1 INTO operand2
|
オペランド:
operand2 := operand2 / operand1
除算の結果の小数点位置は、結果フィールド(つまり、 結果の精度については、『プログラミングガイド』の「演算割り当てのルール」、「算術演算結果の精度」を参照してください。 |
ROUNDED |
ROUNDED オプション:
キーワード 四捨五入の詳細については、『プログラミングガイド』の「演算割り当てのルール」、および「フィールドの切り捨てと切り上げ」を参照してください。 |
DIVIDE [ROUNDED ] |
INTO |
GIVING operand3 |
構文図で使用されている記号については、「構文記号」を参照してください。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 |
C | S | A | N | N | P | I | F | ○ | × | ||||||||||
operand2 |
C | S | A | N | N | P | I | F | ○ | × | ||||||||||
operand3 |
S | A | A | U | N | P | I | F | B * | ○ | ○ |
* operand3
のフォーマット B は、4 以下の長さでのみ使用できます。
構文要素の説明:
構文要素 | 説明 |
---|---|
arithmetic-expression |
COMPUTE ステートメントの「算術演算式」も参照してください。
|
operand1 INTO operand2 GIVING operand3 |
オペランド:
結果は operand3 := operand2 / operand1 除算の結果の小数点位置は、結果フィールド(つまり、 結果の精度については、『プログラミングガイド』の「演算割り当てのルール」、「算術演算結果の精度」を参照してください。 |
ROUNDED |
ROUNDED オプション:
キーワード 四捨五入の詳細については、『プログラミングガイド』の「演算割り当てのルール」、および「フィールドの切り捨てと切り上げ」を参照してください。 |
DIVIDE |
INTO |
[GIVING operand3] REMAINDER operand4 |
構文図で使用されている記号については、「構文記号」を参照してください。
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 |
C | S | A | N | N | P | I | ○ | × | |||||||||||
operand2 |
C | S | A | N | N | P | I | ○ | × | |||||||||||
operand3 |
S | A | A | U | N | P | I | F | B * | T | ○ | ○ | ||||||||
operand4 |
S | A | A | U | N | P | I | F | B * | T | ○ | ○ |
* operand3
および operand4
のフォーマット B は、4 以下の長さでのみ使用できます。
構文要素の説明:
構文要素 | 説明 |
---|---|
arithmetic-expression |
COMPUTE ステートメントの「算術演算式」も参照してください。
|
オペランド:
|
|
GIVING operand3 |
GIVING 節:
この節を使用すると、 除算結果の小数桁数は、結果フィールド(つまり 結果の精度については、『プログラミングガイド』の「演算割り当てのルール」、「算術演算結果の精度」を参照してください。 |
REMAINDER operand4
|
REMAINDER 節:
除算の剰余は、
これらの各ステップにおいて、「算術演算結果の精度」(『プログラミングガイド』)で説明されている規則が適用されます。 |
** Example 'DIVEX1': DIVIDE ************************************************************************ DEFINE DATA LOCAL 1 #A (N7) INIT <20> 1 #B (N7) 1 #C (N3.2) 1 #D (N1) 1 #E (N1) INIT <3> 1 #F (N1) END-DEFINE * DIVIDE 5 INTO #A WRITE NOTITLE 'DIVIDE 5 INTO #A' 20X '=' #A * RESET INITIAL #A DIVIDE 5 INTO #A GIVING #B WRITE 'DIVIDE 5 INTO #A GIVING #B' 10X '=' #B * DIVIDE 3 INTO 3.10 GIVING #C WRITE 'DIVIDE 3 INTO 3.10 GIVING #C' 8X '=' #C * DIVIDE 3 INTO 3.1 GIVING #D WRITE 'DIVIDE 3 INTO 3.1 GIVING #D' 9X '=' #D * DIVIDE 2 INTO #E REMAINDER #F WRITE 'DIVIDE 2 INTO #E REMAINDER #F' 7X '=' #E '=' #F * END
DIVIDE 5 INTO #A #A: 4 DIVIDE 5 INTO #A GIVING #B #B: 4 DIVIDE 3 INTO 3.10 GIVING #C #C: 1.03 DIVIDE 3 INTO 3.1 GIVING #D #D: 1 DIVIDE 2 INTO #E REMAINDER #F #E: 1 #F: 1