[ABAP] Laufzeitverhalten im ABAP bei aktivierter bzw. deaktivierter Festpunktarithmetik

Bei deaktivierter Festpunktarithmetik werden gepackte Zahlen (ABAP-Typ P, Dictionary-Typen CURR, DEC oder QUAN) bei Zuweisung, Vergleich und Berechnungen als ganze Zahlen aufgefaßt, unabhängig von den definierten Dezimalstellen. Auch alle Zwischenergebnisse in arithmetischen Ausdrücken werden zur nächsten ganzen Zahl gerundet. Nur bei der Ausgabe mit WRITE werden die definierten Dezimalstellen berücksichtigt.

* SE80 -> Rechtsklick auf Programmnamen -> Anzeigen -> Eigenschaften -> Attribute -> Festpunktarithmetik -> kein Haken
DATA: a TYPE p DECIMALS 1.

* Konvertierung Char -> p
a = '0.1'.

* Festpunktarithmetik aktiv: 0.1
* Festpunktarithmetik inaktiv: 0.1
WRITE: / 'a:', a.

DATA: b TYPE p DECIMALS 1.

b = 1.

* Festpunktarithmetik aktiv: 1
* Festpunktarithmetik inaktiv: 0.1
WRITE: / 'b:', b.

DATA: c TYPE decfloat34.
DATA: d TYPE p DECIMALS 1.

c = 1.
d = c.

* Festpunktarithmetik aktiv: 1
* Festpunktarithmetik inaktiv: 1
WRITE: / 'c:', c.
* Festpunktarithmetik aktiv: 1
* Festpunktarithmetik inaktiv: 0.1
WRITE: / 'd:', d.

Links