** Numerical Operations**

To process numeric data objects and assign the resulting value to a data object, you can use either the COMPUTE statement or the assignment operator (=).

The syntax for the COMPUTE statement is as follows:

**Syntax**

COMPUTE <n> = <expression>.

The use of the keyword COMPUTE is optional. In other words, you could also write the statement as follows:

**Syntax**

<n> = <expression>.

The effect of both statements is identical.

The result of the mathematical operation specified in <expression> is assigned to the field <n>. The assignment operator (=) works as described in the Basic Assignments section.

ABAP executes a numerical operation with a numerical precision
that corresponds to one of the numerical data types I, P, or F. The
numerical precision is defined by the operand of the numerical
operation that has the highest hierarchy level. The system treats
the target field <n> and floating-point functions **also**
as operands. ABAP converts all numbers of a numerical operation
**before** its execution into the hierarchically highest data
type that occurs in the operation. Then the system executes the
operation with the converted numbers (see Type Conversions). If necessary, the system converts the result back to
the data type of the target field after the execution.

In ABAP, the sequence of type conversions during numerical operations is different from other programming languages. Especially, you can influence the numerical precision of the whole operation with the data type of the target field.

In mathematical expressions, you can combine operations in any permutation and specify them in parentheses.

The order of evaluation is:

- expressions in parentheses
- functions
- ** (exponentiation)
- *, /, MOD, DIV (multiplications, divisions)
- +, - (additions, subtractions)

The mathematical operations specified in <expression> are described in the following topics:

The processing of the following data types is of special interest: