Show TOC Anfang des Inhaltsbereichs

Kaufmännisches Rechnen  Dokument im Navigationsbaum lokalisieren

Für das kaufmännische Rechnen verwendet man gepackte Zahlen. Bei Berechnungen mit gepackten Zahlen spielt das Programmattribut Festpunktarithmetik eine Rolle.

Wenn das Programmattribut nicht gesetzt ist, werden Felder des Typs P im ABAP-Programm als Ganzzahlen ohne Dezimalstellen interpretiert. Die Dezimalstellen, die z.B. durch den Parameter DECIMALS der TYPES- oder DATA-Anweisung festgelegt werden, wirken sich lediglich auf die Formatierung der Ausgabe auf eine Liste mit der WRITE-Anweisung aus.

Beispiel

DATA: pack TYPE p DECIMALS 2.

pack = '12345'.

WRITE pack.

Ohne das Programmattribut Festpunktarithmetik ist die Listenausgabe:

123,45

Mit dem Programmattribut Festpunktarithmetik ist die Listenausgabe:

123.45,00

Wenn das Programmattribut Festpunktarithmetik gesetzt ist, werden die Dezimalstellen auch in arithmetischen Operationen berücksichtigt. Rechenoperationen mit gepackten Zahlen erfolgen dann in ABAP genauso wie das Rechnen mit Taschenrechnern (kaufmännisches Rechnen). Bei Zwischenergebnissen rechnet ABAP mit bis zu 31 Dezimalstellen (vor und nach dem Dezimalpunkt) Es wird deshalb empfohlen für Berechnungen immer das Programmattribut Festpunktarithmetik bei Verwendung von Feldern des Typs p zu verwenden.

Beispiel

REPORT demo_data_packed_numbers .

DATA: pack TYPE p DECIMALS 0.

pack = 1 / 3 * 3.
WRITE pack.

Ohne das Programmattribut Festpunktarithmetik ist das Ergebnis 0, da die Berechnung mit der Genauigkeit für ganze Zahlen durchgeführt wird und das Ergebnis der Division deshalb intern auf 0 gerundet wird.

Mit dem Programmattribut Festpunktarithmetik ist das Ergebnis 1, da das Ergebnis der Division intern als 0.333333333333333333333333333333 mit einem Genauigkeitsbereich von 31 Ziffern gespeichert wird.

 

Ende des Inhaltsbereichs