ABAP Keyword Documentation → ABAP − Reference → Obsolete Language Elements → Obsolete Processing of Internal Data → Obsolete Calculation Statements
SUBTRACT, MULTIPLY, DIVIDE
Other versions:
7.31  7.40  7.54
Obsolete Syntax
SUBTRACT dobj1 FROM dobj2.
MULTIPLY dobj2 BY dobj1.
DIVIDE dobj2 BY dobj1.
Effect
These statements have the same effect as the statements
dobj2 = dobj2  dobj1.
dobj2 = dobj2 * dobj1.
dobj2 = dobj2 / dobj1.
The content of dobj2

has the content of
dobj1
subtracted from it, 
or is multiplied by the content of
dobj1
, 
or is divided by the content of
dobj1
,
and the result is assigned to dobj2
. The data objects dobj1
and dobj2
have to be numeric. Only data objects can be specified and no calls or other expressions. The
calculation type is determined like an arithmetic expression.
Division by the value 0 is undefined and raises a handleable exception. The only situation where division by 0 does not raise an exception is if the dividend is also 0. Here, the result is set to 0.
Note
The statements shown here have been replaced by
calculation assignments with the operators
=, *=
,
and /=
in which the operands can also be specified as expressions.
Example
The variable n
has the value 1.50 after the calculation statements. See also the example for the corresponding
calculation assignments.
DATA n TYPE p DECIMALS 2.
ADD 1 TO n.
ADD 1 TO n.
ADD 1 TO n.
ADD 1 TO n.
SUBTRACT 2 FROM n.
MULTIPLY n BY 3.
DIVIDE n BY 4.
Exceptions
Handleable Exceptions
CX_SY_ARITHMETIC_OVERFLOW

Cause: Overflow in arithmetic operation (type
p
)
Runtime error:BCD_OVERFLOW

Cause: Integer overflow in addition
Runtime error:COMPUTE_INT_PLUS_OVERFLOW
CX_SY_CONVERSION_OVERFLOW

Cause: Overflow in arithmetic operation (type
p
, with specified length)
Runtime error:BCD_FIELD_OVERFLOW
CX_SY_ZERODIVIDE

Cause: Division by 0 (type
p
)
Runtime error:BCD_ZERODIVIDE

Cause: Division by 0 (type
f
)
Runtime error:COMPUTE_FLOAT_ZERODIVIDE

Cause: Division by 0 (type
i
)
Runtime error:COMPUTE_INT_ZERODIVIDE
NonHandleable Exceptions

Cause:
p
field does not contain the correct BCD format
Runtime error:BCD_BADDATA