このドキュメントでは、次のトピックについて説明します。
関連ステートメント:ADD | COMPRESS | COMPUTE | DIVIDE | EXAMINE | MOVE | MOVE ALL | MULTIPLY | RESET | SEPARATE
関連機能グループ:算術演算とデータ移動操作
SUBTRACT ステートメントは、複数のオペランドの値を減算するために使用します。
SUBTRACT [ROUNDED] |
|
|
FROMoperand2 |
オペランド定義テーブル:
| オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 |
C | S | A | N | N | P | I | F | D | T | ○ | × | |||||||
operand2 |
S | A | M | N | P | I | F | D | T | ○ | × | ||||||||
構文要素の説明:
| 構文要素 | 説明 |
|---|---|
arithmetic-expression |
COMPUTE ステートメントの「算術演算式」も参照してください。
|
|
オペランド:
オペランドのフォーマットについては、『プログラミングガイド』の「算術割り当てのルール」、「フォーマット混合式のパフォーマンスについて」も参照してください。 |
|
ROUNDED |
ROUNDED オプション:
キーワード 四捨五入の詳細については、『プログラミングガイド』の「演算割り当てのルール」、および「フィールドの切り捨てと切り上げ」を参照してください。 |
SUBTRACT [ROUNDED] |
|
|
FROM |
|
|
GIVINGoperand3 |
||||
オペランド定義テーブル:
| オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1 |
C | S | A | N | N | P | I | F | D | T | ○ | × | ||||||||
operand2 |
C | S | A | N | N | P | I | F | D | T | ○ | × | ||||||||
operand3 |
S | A | M | A | U | N | P | I | F | B * | D | T | ○ | ○ | ||||||
* operand3 のフォーマット B は、4 以下の長さでのみ使用できます。
構文要素の説明:
| 構文要素 | 説明 |
|---|---|
arithmetic-expression |
COMPUTE ステートメントの「算術演算式」も参照してください。
|
GIVING |
GIVING 節:
|
|
オペランド:
オペランドのフォーマットについては、『プログラミングガイド』の「フォーマット混合式のパフォーマンスについて」も参照してください。 |
|
ROUNDED |
ROUNDED オプション:
キーワード 四捨五入の詳細については、『プログラミングガイド』の「演算割り当てのルール」、および「フィールドの切り捨てと切り上げ」を参照してください。 |
** Example 'SUBEX1': SUBTRACT ************************************************************************ DEFINE DATA LOCAL 1 #A (P2) INIT <50> 1 #B (P2) 1 #C (P1.1) INIT <2.4> END-DEFINE * SUBTRACT 6 FROM #A WRITE NOTITLE 'SUBTRACT 6 FROM #A ' 10X '=' #A * SUBTRACT 6 FROM 11 GIVING #A WRITE 'SUBTRACT 6 FROM 11 GIVING #A ' 10X '=' #A * SUBTRACT 3 4 FROM #A GIVING #B WRITE 'SUBTRACT 3 4 FROM #A GIVING #B ' 10X '=' #A '=' #B * SUBTRACT -3 -4 FROM #A GIVING #B WRITE 'SUBTRACT -3 -4 FROM #A GIVING #B' 10X '=' #A '=' #B * SUBTRACT ROUNDED 2.06 FROM #C WRITE 'SUBTRACT ROUNDED 2.06 FROM #C ' 10X '=' #C * END
SUBTRACT 6 FROM #A #A: 44 SUBTRACT 6 FROM 11 GIVING #A #A: 5 SUBTRACT 3 4 FROM #A GIVING #B #A: 5 #B: -2 SUBTRACT -3 -4 FROM #A GIVING #B #A: 5 #B: 12 SUBTRACT ROUNDED 2.06 FROM #C #C: 0.3