Skip to content

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


... func( arg ) ...


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 argis 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 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 and t give i
  • c, n and string give p
  • x and xstring givei
  • utclong is not allowed

Before the calculation of the function, the argument is converted into the respective type..


  • The time stamp type utclong cannot be converted implicitly to a numeric type, and therefore cannot be specified directly as an argument.


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 ).

Executable Example

Numeric Functions