Ansicht
Dokumentation
ABENFLOATING_POINT_FUNCTIONS - FLOATING POINT FUNCTIONS
General Material Data RFUMSV00 - Advance Return for Tax on Sales/PurchasesDiese Dokumentation steht unter dem Copyright der SAP AG.
- acos, sin, tanh, exp, log, sqrt, ...
... num_func( arg ) ...
Wirkung
Eingebaute Gleitpunktfunktion mit genau einem unbenannten Argument, für das eine Gleitpunktzahl erwartet wird. Gleitpunktfunktionen sind dahingehend überladen, dass der Rückgabewert vom Typ decfloat34 oder f sein kann. Es gilt die Einschränkung, dass dezimale Gleitpunktzahlen nur als Argumente von exp, log, log10 und sqrt möglich sind. Das Argument einer Gleitpunktfunktion muss außerhalb eines arithmetischen Ausdrucks ein einzelnes Datenobjekt und kann innerhalb eines arithmetischen Ausdrucks selbst ein arithmetischer Ausdruck sein.
Folgende Tabelle zeigt die Gleitpunktfunktion und ihre Wirkung.
Funktion num_func | Bedeutung | Definitionsbereich |
acos | Arcuscosinus | [-1,1], kein decfloat34 |
asin | Arcussinus | [-1,1], kein decfloat34 |
atan | Arcustangens | -, kein decfloat34 |
cos | Cosinus | -, kein decfloat34 |
sin | Sinus | -, kein decfloat34 |
tan | Tangens | -, kein decfloat34 |
cosh | Hyperbelcosinus | -, kein decfloat34 |
sinh | Hyperbelsinus | -, kein decfloat34 |
tanh | Hyperbeltangens | -, kein decfloat34 |
exp | Exponentialfunktion zur Basis e | [-709, 709] für Typ f und [-14144, 14149] für Typ decfloat34 |
log | natürlicher Logarithmus | > 0 |
log10 | Logarithmus zur Basis 10 | > 0 |
sqrt | Quadratwurzel | >= 0 |
Bei den Funktionen, bei denen "kein decfloat34" angegeben ist, darf der Rechentyp derzeit nicht decfloat34 sein. Wenn eine dieser Funktionen in einem Ausdruck dieses Rechentyps angegeben ist, kommt es zu einem Syntaxfehler oder zur Ausnahme CX_SY_UNSUPPORTED_FUNCTION.
Für die Gleitpunktarithmetik, in der eine Gleitpunktfunktion berechnet wird, und den Datentyp des Rückgabewerts gilt folgendes:
- Wenn das Argument vom Typ decfloat16 oder decfloat34 ist, wird eine Gleitpunktfunktion in dezimaler Gleitpunktarithmetik berechnet und der Rückgabewert ist vom Typ decfloat34.
- Wenn eine Gleitpunktfunktion in einem arithmetischen Ausdruck verwendet wird, dessen Rechentyp decfloat34 ist, oder einen numerischen Ausdruck vom Typ decfloat34 als Argument enthält, berechnet sie ebenfalls einen Rückgabewert vom Typ decfloat34 und das Argument wird falls notwendig vorher in den Datentyp decfloat34 konvertiert.
- In allen anderen Fällen berechnen Gleitpunktfunktionen mit binärer Gleitpunktarithmetik einen Rückgabewert vom Typ f und das Argument wird falls notwendig vorher in den Datentyp f konvertiert.
Für die Funktionen, für die ein Definitionsbereich angegeben ist, muss der Wert von arg in den angegebenen Grenzen liegen. Für die Exponentialfunktion exp ist die fehlerfreie Ausführung für Argumente innerhalb der Definitionsbereiche garantiert, da die Ergebnisse dann innerhalb der Wertebereiche für binäre bzw. dezimale Gleitpunktzahlen nach IEEE-754 liegen. Für Argumente kleiner -709 ist das Ergebnis bei binären Gleitpunktzahlen plattformabhängig entweder immer 0 oder es kommt ab einem bestimmten Wert zu einer behandelbaren Ausnahme der Klasse CX_SY_ARITHMETIC_OVERFLOW.
Die trigonometrischen Funktionen sin, cos und tan sind zwar für beliebige Argumente definiert, die Ergebnisse werden aber ungenau, wenn der Betrag des Arguments größer als etwa 100.000.000 ist.
Hinweise
- Die Funktion atan ist bei ungeradzahligen Vielfachen von pi/2 zwar undefiniert, der Definitionsbereich für atan ist aber nicht eingeschränkt, da ein Argument der Funktion nie genau den Wert von pi/2 enthalten kann.
- Die hier aufgeführten Funktionen gehören zu den Funktionen, die an den obsoleten erweiterten funktionalen Operandenpositionen verwendet werden können, wenn ihr Argument ein einzelnes Datenobjekt ist.
Beispiel
Die Ergebnisse in der internen Tabelle sollten alle den Wert 1 haben oder sehr nahe bei diesem liegen.
Ausnahmen
Behandelbare Ausnahmen
- Ursache: Unzulässiger Aufruf von acos
Laufzeitfehler: COMPUTE_ACOS_DOMAIN
- Ursache: Unzulässiger Aufruf von asin
Laufzeitfehler: COMPUTE_ASIN_DOMAIN
- Ursache: Unzulässiger Aufruf von cos
Laufzeitfehler: COMPUTE_COS_DOMAIN
- Ursache: Unzulässiger Aufruf von log10
Laufzeitfehler: COMPUTE_LOG10_ERROR
- Ursache: Unzulässiger Aufruf von log
Laufzeitfehler: COMPUTE_LOG_ERROR
- Ursache: Unzulässiger Aufruf von sin
Laufzeitfehler: COMPUTE_SIN_DOMAIN
- Ursache: Unzulässiger Aufruf von sqrt
Laufzeitfehler: COMPUTE_SQRT_DOMAIN
- Ursache: Unzulässiger Aufruf von tan
Laufzeitfehler: COMPUTE_TAN_DOMAIN
Vendor Master (General Section) BAL Application Log Documentation
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 9948 Date: 20240523 Time: 172355 sap01-206 ( 107 ms )