ABAP Keyword Documentation → ABAP − Reference → Processing Internal Data → Numeric Calculations → Numerical Functions
abs, sign, ceil, floor, trunc, frac - Numeric Functions
The following table shows the general numeric functions for a single unnamed argument with any numeric data type. These functions are overloaded with the effect that the return value can have different numeric types.
Other versions: 7.31 | 7.40 | 7.54
Syntax
... func( arg ) ...
Effect
The argument of a general numeric function must be an individual data object outside an arithmetic expression, and can itself be a numeric expression within an arithmetic expression.
Effect of the general numeric functions.
Function func | Return value |
---|---|
abs |
Absolute value of argument arg |
sign |
Sign of argument arg : -1, if the value of arg is negative; 0, if the value of arg is 0; 1, if the value of arg is positive |
ceil |
Smallest integer that is not less than the value of the argument arg is |
floor |
Largest integer that is not greater than the value of the argument arg is |
trunc |
Value of the integer part of the argument arg ; negative if arg is negative |
frac |
Value of the decimalplaces of the argument arg ; negative if arg is negative |
The following applies with regard to the data type of the return value:
- With the exception of an arithmetic expression, the data type of the argument determines the data type of the return value.
- Within an arithmetic expression, the argument of the function contributes to the calculation type of the entire expression and the function is calculated using the calculation type. If the argument itself is an arithmetic expression, its operands contribute to the entire calculation type and the argument is also calculated with this type.
- If the argument
arg
is a numeric expression, the function works like an arithmetic operator and it is handled in its operand position like an arithmetic expression.
If the argument of a numeric function outside of an arithmetic expression does not have a numeric data
type i
, int8
, p
,
decfloat16, decfloat34
, or f
, its data type determines the type of return value as follows:
d
andt
givei
c
,n
andstring
givep
x
andxstring
givei
utclong
is not allowed
Before the calculation of the function, the argument is converted into the respective type..
Notes
- The time stamp type
utclong
cannot be converted implicitly to a numeric type, and therefore cannot be specified directly as an argument.
- 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.
Example
The following assertion should always be correct.
DATA pack TYPE p LENGTH 8 DECIMALS 4 VALUE '-1234.5678'.
cl_demo_input=>request( CHANGING field = pack ).
ASSERT pack = trunc( pack ) + frac( pack ).