ABAP Keyword Documentation →  ABAP - Reference →  Processing Internal Data →  Numerical Calculations →  Statements for Numerical Calculations

DIVIDE

Other versions: 7.31 | 7.40 | 7.54

Syntax

``````
DIVIDE dobj1 BY dobj2.
``````

Effect

This statement has the same effect as the statement

`COMPUTE dobj1 = dobj1 / dobj2.`

The content of `dobj1` is divided by the content of `dobj2` and the result is assigned to `dobj1`. The data objects `dobj1` and `dobj2` have to be numeric. Predefined functions or functional methods cannot be specified. The calculation type is determined like an arithmetic expression.

Programming Guideline

Preventing Division by Zero

Notes

• 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.
• One obsolete form of the statement `DIVIDE` is `DIVIDE-CORRESPONDING`.

Exceptions

Catchable Exceptions

CX_SY_ARITHMETIC_OVERFLOW

• Cause: Overflow in arithmetic operation (type `p`)
Runtime Error: `BCD_OVERFLOW`
• Cause: Integer overflow in division
Runtime Error: `COMPUTE_INT_DIV_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`

Non-Catchable Exceptions

• Cause: `p` field does not contain the correct BCD format
Runtime Error: `BCD_BADDATA`