- 26. Juli 2015

Festpunktarithmetik in ABAP – Was bedeutet das?

Hatten Sie schon mal das Problem, dass beim Rechnen mit Dezimalzahlen nicht die Werte in Ihrem ABAP Programm berechnet wurden, die Sie erwartet haben? Oder haben Sie sich bereits gefragt, welche Auswirkungen die Checkbox Festpunktarithmetik in den Eigenschaften eines ABAP Reports hat? Ich stelle Ihnen anhand eines einfachen Beispiels den Unterschied vor.

Die Situation

Schauen Sie sich das folgende Beispiel an, in dem wir simple Berechnungen mit Dezimalzahlen vornehmen. Welche Ergebnisse der einzelnen Ausgaben würden Sie erwarten? (Hinweis: Das Datenelement KWERT basiert auf dem Datentyp CURR mit 2 Dezimalstellen.)

Festpunktarithmetik in ABAP: Beispiel Report

ABAP Beispiel Report

Ihre Ergebnisse sind 15.46, 1.55 und 15.50? Mein Ergebnis sieht folgendermaßen aus.

Ausgabe mit deaktivierter Festpunktarithmetik in ABAP

Ausgabe mit deaktivierter Festpunktarithmetik

Wir sind Ihr Dienstleister für die Entwicklung, die Ihr SAP noch besser macht.
Schon in der Ideenphase unterstützen wir Sie bei der Definition der Anforderungen. Die Konzeption und Umsetzung erfolgt durch unsere SAP Experten.

Sie erhalten die Komplettlösung – Ihr Projekt machen wir zu unserem Projekt. Mit professionellem Projektmanagement sicheren wir den Projekterfolg.

Gerne spreche ich mit Ihnen über Ihre Ausgangslage und zeige Lösungsmöglichkeiten auf. Auf Wunsch unterbreite ich Ihnen im Anschluss ein unverbindliches Angebot.

Kontaktieren Sie mich: Telefon 0211.9462 8572-16 oder per E-Mail biermann@erlebe-software.de
Ingo Biermann, Fachbereichsleiter


Udemy-abap-2

Für Besucher von Erlebe Software können wir unseren Kurs SAP ABAP für Anfänger: Komplexe Datenarten und Debugging mit kräftigem Rabatt anbieten.

SAP ABAP für Anfänger: Komplexe Datenarten und Debugging

Die Ursache

Der Grund für diese unerwarteten Ergebnisse ist die Festpunktarithmetik, die für ABAP Programme unter Springen -> Eigenschaften
eingestellt werden kann. Sie ist standardmäßig aktiviert.

ABAP Festpunktarithmetik: Eigenschaften des Reports

Eigenschaften des Reports

Wenn die Einstellung deaktiviert ist, werden gepackten Zahlen bei Operationen als ganze Zahlen (Integer) behandelt. Dazu zählt der vordefinierte Datentyp P und auch die Dictionary Typen CURR, DEC oder QUAN. Das bedeutet, dass die durch den Datentyp definierten Dezimalstellen bei den Operationen nicht berücksichtigt werden und nur bei der Ausgabe der Werte eine Auswirkung haben (z.B. im Beispiel werden die letzten beiden Ziffern als Dezimalstellen genutzt). Wie im zweiten Schritt im obigen Beispiel zu sehen, wird bei Berechnungen auch auf die nächste ganze Zahl gerundet (154.56 / 10 = 15.46).

Programm mit Festpunktarithmetik in ABAP: Ausgabe bei aktivierter Festpunktarithmetik

Ausgabe bei aktivierter Festpunktarithmetik

Das ist das Ergebnis, wie wir es erwarten würden, wenn die Festpunktarithmetik in ABAP Reports aktiviert ist.

Ich hoffe, dass dieser Artikel hilfreich für Sie ist. Wenn Sie Fragen haben oder Unterstützung brauchen kontaktieren Sie uns!


SHARE


Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.