このドキュメントでは、次のトピックについて説明します。
関連ステートメント:ADD
| COMPRESS
| COMPUTE
| DIVIDE
| EXAMINE
| MOVE
| MOVE ALL
| MULTIPLY
| RESET
| SEPARATE
関連機能グループ:算術演算とデータ移動操作
SUBTRACT
ステートメントは、複数のオペランドの値を減算するために使用します。
SUBTRACT [ROUNDED ] |
FROM operand2 |
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 |
GIVING operand3 |
オペランド定義テーブル:
オペランド | 構文要素 | フォーマット | オペランド参照 | ダイナミック定義 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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