Ansicht
Dokumentation
FLOATINGPOINT_COMPARE_RELATIVE - Relativer Vergleich von Floatingpointwerten mit zulässiger Abweichung
General Material Data TXBHW - Original Tax Base Amount in Local CurrencyDiese Dokumentation steht unter dem Copyright der SAP AG.
Bei der Gleitpunktarithmetik können durch Konvertierungen oder nach Rechenoperationen Rundungsfehler auftreten. Die Gleichheitsprüfung im ABAP liefert dann das Ergebnis 'ungleich'. Dieser Funktionsbaustein prüft, ob zwei Gleitpunktzahlen 'relativ gleich' sind, d.h. gleich bis auf eine vorgebbare maximale Abweichung.
Sind v1 und v2 die zu vergleichenden Werte und eps > 0 die maximale Abweichung, dann ist die relative Abweichung wie folgt definiert:
- eps <= abs((v1 -v2) / min(abs(v1),abs(v2)) ) <= eps, wenn v1 <> 0 und v2 <> 0
Ist v1 = 0 oder v2 = 0, dann ist die relative Abweichung gleich 1, d.h. es wird geprüft, ob 1 <= eps ist.
Beispiel:
DATA:
FLOAT1 TYPE F,
FLOAT2 TYPE F,
DIFF TYPE C.
* FLOAT1 und FLOAT2 konvertieren oder damit rechnen
IF FLOAT1 <> FLOAT2.
CALL FUNCTION 'FLOATINGPOINT_COMPARE_RELATIVE'
EXPORTING FIRST_VALUE = FLOAT1
SECOND_VALUE = FLOAT2
IMPORTING VALUES_ARE_DIFFENT = DIFF.
IF DIFF = SPACE.
* FLOAT1 und FLOAT2 weichen relativ gleich
ELSE.
* FLOAT1 und FLOAT2 sind ungleich
* ENDIF.
Performancehinweis:
Bevor der Funktionsbaustein aufgerufen wird, sollte ein ABAP-Vergleich durchgeführt
werden. Erst wenn die Werte nach dem ABAP-Vergleich ungleich sind, sollte dieser Funktionsbaustein aufgerufen werden.
Parameter
FIRST_VALUEMAX_RELATIVE_DEVIATION
RELATIVE_DEVIATION
SECOND_VALUE
VALUES_ARE_DIFFERENT
Ausnahmen
Funktionsgruppe
SFLTBAL_S_LOG - Application Log: Log header data BAL_S_LOG - Application Log: Log header data
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 1959 Date: 20240523 Time: 151315 sap01-206 ( 33 ms )