Ansicht
Dokumentation

ABENCOMPUTE_EXACT_ABEXA - COMPUTE EXACT ABEXA

ABENCOMPUTE_EXACT_ABEXA - COMPUTE EXACT ABEXA

General Material Data   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Verlustfreie Berechnungen

Das Beispiel demonstriert verlustfreie Berechnungen und die Ausnahmen bei Rundungen.

Quelltext

Ausführen

Beschreibung

Mit dem verlustfreien Operator EXACT werden folgende Berechnungen durchgeführt und das Ergebnis einem Datenobjekt vom Typ decfloat34 zugewiesen:

result = number / sy-index

result = number * ( 1 / sy-index )

Wenn keine Rundung nötig ist, wird das Ergebnis result ausgegeben. Bei Rundungen wird die zugehörige Ausnahme CX_SY_CONVERSION_ROUNDING abgefangen und deren Attribut VALUE ausgegeben. Die Ergebnisse verlustfreier Berechnungen werden in der Ausgabe durch eine Markierung gekennzeichnet.

Das Beispiel zeigt, wie der Aufbau eines arithmetischen Ausdrucks das Ergebnis einer verlustfreien Berechnung beeinflussen kann. Während beispielsweise eine Division der Zahl number durch sich selbst immer eine verlustfreie Berechnung ist, kommt es bei der Multiplikation von number mit 1 / number zur Ausnahme, wenn eine Rundung in der Division auftritt.

Die folgenden beiden Ausdrücke wären weitere Beispiele für den Einfluss des Aufbaus eines arithmetischen Ausdrucks:

result = number * 1 / sy-index

result = 1 / sy-index * number

Der erste Ausdruck wirkt wie number / sy-index und der zweite wieder wie number * ( 1 / sy-index ).






rdisp/max_wprun_time - Maximum work process run time   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 1853 Date: 20240523 Time: 182340     sap01-206 ( 31 ms )