ABAP Keyword Documentation → ABAP - Reference → Processing Internal Data → Numerical Calculations → Numerical Functions
acos, sin, tanh, exp, log, sqrt - Floating Point Functions
The following table shows the floating point functions that expect a
floating point
number as an unnamed argument. Floating point functions are overloaded so that the return code can have the type decfloat34
or f
.
Decimal floating point numbers
are still only possible as arguments of exp
, log
, log10
, and sqrt
.
Other versions: 7.31 | 7.40 | 7.54
Syntax
... func( arg ) ...
Effect
The argument of a floating point function must be a single data object outside an arithmetic expression and can be an arithmetic expression itself within an arithmetic expression.
Effect of the floating point functions:
Function func | Meaning | Definition Range |
---|---|---|
acos |
arccosine | [-1,1], no decfloat34 |
asin |
arcsine | [-1,1], no decfloat34 |
atan |
arctangent | -, no decfloat34 |
cos |
cosine | -, no decfloat34 |
sin |
sine | -, no decfloat34 |
tan |
tangent | -, no decfloat34 |
cosh |
hyperbolic cosine | -, no decfloat34 |
sinh |
hyperbolic sine | -, no decfloat34 |
tanh |
hyperbolic tangent | -, no decfloat34 |
exp |
Exponential function for base e | [-709, 709] for type f and [-14144, 14149] for type decfloat34 |
log |
Natural logarithm | > 0 |
log10 |
Logarithm to base 10 | > 0 |
sqrt |
Square root | >= 0 |
Functions that specify "no decfloat34
" cannot currently have the
calculation type
decfloat34. If one of these functions is specified in an expression with this calculation type, a syntax error occurs or the exception CX_SY_UNSUPPORTED_FUNCTION is raised.
The following applies to the floating point arithmetic in which a floating point function is calculated, and to the data type of the return code:
- If the argument has the type
decfloat16
ordecfloat34
, a floating point function is calculated in decimal floating point arithmetic and the return code has the typedecfloat34
.
- If a floating point function is used in an arithmetic expression whose
calculation type is
decfloat34
, it also calculates a return code with the typedecfloat34
and the argument is first converted to the data typedecfloat34
, if necessary.
- In all other cases, floating point functions use binary floating point arithmetic to calculate a
return code with type
f
and the argument is first converted to the data typef
, if necessary.
Functions with a definition range require the value of arg
to be within the
specified limits. Arguments within the definition ranges are guaranteed to be error-free for the exponential function exp
, since the results are then within the
value ranges for
binary or
decimal
floating point
numbers in accordance with IEEE-754. For arguments less than -709, the result for binary floating
point numbers is (depending on the platform) a subnormal number, 0, or a handleable exception of the class CX_SY_ARITHMETIC_OVERFLOW is raised from a specific value.
The trigonometric functions sin
, cos
, and
tan are defined for any arguments but the results become imprecise if the argument is greater than approximately 100,000,000.
Note
The atan
function is undefined for odd-number multiples of pi/2, but the
definition range of atan
is nevertheless restricted since an argument of this function can never contain the precise value of pi/2.