SAP FLOATING POINT FUNCTIONS

Get Example source ABAP code based on a different SAP table
  


ARTICLE
• acos ABAP_FUNCTION
• asin ABAP_FUNCTION
• atan ABAP_FUNCTION
• cos ABAP_FUNCTION
• sin ABAP_FUNCTION
• tan ABAP_FUNCTION
• cosh ABAP_FUNCTION
• sinh ABAP_FUNCTION
• tanh ABAP_FUNCTION
• exp ABAP_FUNCTION
• log ABAP_FUNCTION
• log10 ABAP_FUNCTION
• sqrt ABAP_FUNCTION

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.

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 funcMeaningDefinition Range ABAP_KEY acosarccosine[-1,1], no decfloat34 ABAP_KEY asinarcsine[-1,1], no decfloat34 ABAP_KEY atanarctangent-, no decfloat34 ABAP_KEY coscosine -, no decfloat34 ABAP_KEY sinsine -, no decfloat34 ABAP_KEY tantangent -, no decfloat34 ABAP_KEY coshhyperbolic cosine -, no decfloat34 ABAP_KEY sinhhyperbolic sine -, no decfloat34 ABAP_KEY tanhhyperbolic tangent -, no decfloat34 ABAP_KEY expExponential function for base e[-709, 709] for type f and [-14144, 14149] for type decfloat34 ABAP_KEY logNatural logarithm> 0 ABAP_KEY log10Logarithm to base 10> 0 ABAP_KEY sqrtSquare 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 or decfloat34, a floating point function is calculated in decimal floating point arithmetic and the return code has the type decfloat34.
If a floating point function is used in an arithmetic expression whose calculation type is decfloat34 , or that contains a numeric expression of type decfloat34 as an argument, it also calculates a return code with the type decfloat34 and the argument is first converted to the data type decfloat34, 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 type f, 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.

Notes
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.
The functions described here are some of the functions that can be used in the obsolete extended functional operand positions, even if their argument is a single data object.




Runtime Exceptions

Catchable Exceptions



CX_SY_ARG_OUT_OF_DOMAIN
Reason for error:
Invalid call of acos
Runtime error:
COMPUTE_ACOS_DOMAIN
Reason for error:
Invalid call of asin
Runtime error:
COMPUTE_ASIN_DOMAIN
Reason for error:
Unzulässiger Aufruf von atan
Laufzeitfehler: COMPUTE_ATAN_DOMAIN
Reason for error:
Unzulässiger Aufruf von cosh
Laufzeitfehler: COMPUTE_COSH_DOMAIN
Reason for error:
Invalid call of cos
Runtime error:
COMPUTE_COS_DOMAIN
Reason for error:
Unzulässiger Aufruf von exp
Laufzeitfehler: COMPUTE_EXP_DOMAIN
Reason for error:
Invalid call of log10
Runtime error:
COMPUTE_LOG10_ERROR
Reason for error:
Invalid call of log
Runtime error:
COMPUTE_LOG_ERROR
Reason for error:
Unzulässiger Aufruf von sinh
Runtime error:
COMPUTE_SINH_DOMAIN
Reason for error:
Invalid call of sin
Runtime error:
COMPUTE_SIN_DOMAIN
Reason for error:
Invalid call of sqrt
Runtime error:
COMPUTE_SQRT_DOMAIN
Reason for error:
Unzulässiger Aufruf von tanh
Runtime error:
COMPUTE_TANH_DOMAIN
Reason for error:
Invalid call of tan
Runtime error:
COMPUTE_TAN_DOMAIN