Anfang des Inhaltsbereichs

Mathematische Funktionen Dokument im Navigationsbaum lokalisieren

Als mathematischer Ausdruck oder als Teil davon können eine Reihe eingebauter ABAP-Funktionen verwendet werden:

[COMPUTE] <n> = <func>( <m> ).

Die Leerzeichen zwischen den Klammern und dem Argument <m> sind dabei zwingend. Das Ergebnis des Aufrufs der Funktion <func> mit dem Argument <m> wird dem Ergebnisfeld <n> zugewiesen.

Funktionen für alle numerischen Datentypen

Die folgenden eingebauten Funktionen funktionieren mit allen drei numerischen Datentypen (F, I, P) als Argument.

Funktionen für alle numerischen Datentypen

Funktion

Ergebnis

ABS

Absolutwert des Arguments

SIGN

Vorzeichen des Arguments:                      1            X > 0

                                              SIGN( X) =  0   falls  X = 0

                                                               -1            X < 0

CEIL

Kleinster ganzzahliger Wert, nicht kleiner als das Argument

FLOOR

Größter ganzzahliger Wert, nicht größer als das Argument

TRUNC

Ganzzahliger Teil des Arguments

FRAC

Dezimalteil des Arguments

Das Argument dieser Funktionen muß nicht notwendigerweise einen numerischen Datentyp haben. Wenn ein anderer Typ gewählt wird, wird er in einen numerischen Typ konvertiert. Aus Performancegründen sollte jedoch möglichst immer der richtige Typ verwendet werden. Die Funktionen selbst haben keinen eigenen Typ und ändern die Rechengenauigkeit einer numerischen Operation also nicht.

Beispiel

DATA n TYPE p DECIMALS 2.
DATA m TYPE p DECIMALS 2 VALUE '-5.55'.

n = abs( m ).   WRITE:   'ABS:  ', n.
n = sign( m ).  WRITE: / 'SIGN: ', n.
n = ceil( m ).  WRITE: / 'CEIL: ', n.
n = floor( m ). WRITE: / 'FLOOR:', n.
n = trunc( m ). WRITE: / 'TRUNC:', n.
n = frac( m ).  WRITE: / 'FRAC: ', n.

Ausgabe:

ABS:              5.55

SIGN:             1.00-

CEIL:             5.00-

FLOOR:            6.00-

TRUNC:            5.00-

FRAC:             0.55-

Beispiel

DATA: t1(10) TYPE c,
      t2(10) TYPE c VALUE '-100'.

t1 = ABS( t2 ).

WRITE t1.

Ergebnis:

100

Zwei Konvertierungen werden durchgeführt. Zunächst wird der Inhalt des Feldes T2 (Typ C) nach Typ P konvertiert. Das System verarbeitet dann die Funktion ABS mit dem Resultat dieser Konversion. Während der Zuweisung zum Feld T1 (Typ C) wird das Ergebnis der Funktion wieder nach Typ C konvertiert.

Funktionen für Gleitpunktzahlen

Die folgenden eingebauten Funktionen arbeiten mit dem Gleitpunktzahlen (Datentyp F) als Argument.

Gleitpunktfunktionen

Funktion

Bedeutung

ACOS, ASIN, ATAN; COS, SIN, TAN

Trigonometrische Funktionen

COSH, SINH, TANH

Hyperbolische Funktionen

EXP

Exponentialfunktion zur Basis e (e=2.7182818285).

LOG

Natürlicher Logarithmus zur Basis e

LOG10

Logarithmus zur Basis 10

SQRT

Quadratwurzel

Für alle Funktionen gelten die üblichen mathematischen Einschränkungen (z.B. Quadratwurzel nur für positive Zahlen). Andernfalls kommt es zu einem Laufzeitfehler.

Das Argument dieser Funktionen muß nicht notwendigerweise der Gleitpunktdatentyp sein. Wenn Sie einen anderen Typ wählen, wird er wie in beschrieben in den Typ F konvertiert. Die Funktionen selbst haben den Datentyp F und ändern gegebenenfalls die Rechengenauigkeit einer numerischen Operation.

Beispiel

DATA: result TYPE f,
      pi(10) TYPE c VALUE '3.14159265'.

result = cos( pi ).

WRITE result.

Das Ergebnis ist -1.00000000000000E+00. Bevor die Berechnung durchgeführt wird, wird das Characterfeld PI automatisch in ein Feld des Typs F konvertiert.

 

 

Ende des Inhaltsbereichs