Show TOC

Business CalculationsLocate this document in the navigation structure

For calculations in business applications, use packed numbers. The program attribute Fixed point arithmetic affects calculations using packed numbers.

If the program attribute Fixed point arithmetic isnot set, type P fields are interpreted as integers without decimal places. The decimal places that you specify in the DECIMALS addition of the TYPES or DATA statement only affect how the field is formatted in the WRITE statement.

Tip

DATA: pack TYPE p DECIMALS 2.

pack = '12345'.

WRITE pack.

If the program attribute Fixed point arithmetic is not set, the output is as follows:

123,45

If the program attribute Fixed point arithmetic is set, the output is as follows:

123.45,00

If the Fixed point arithmetic attribute is set, the decimal places are also taken into account in arithmetic operations. Calculations with packed numbers in ABAP use the same arithmetic as a calculator. Intermediate results are calculated using up to 31 digits (before and after the decimal point). You should therefore always set the Fixed point arithmetic attribute when you use type pfields.

Tip

REPORT demo_data_packed_numbers .

DATA: pack TYPE p DECIMALS 0.

pack = 1 / 3 * 3.WRITE pack.

If you have not set the Fixed point arithmetic attribute, the result is 0, since the calculation is performed using integer accuracy, and the result is therefore rounded internally to 0.

If the program attribute Fixed point arithmeticis set, the result is 1 because the result of the division is stored internally as 0.333333333333333333333333333333 with an accuracy of up to 31 digits.