ABAP - Keyword Documentation →  ABAP - Reference →  Predefined Types, Data Objects, Functions, and Constructors →  Predefined Data Types →  Predefined ABAP Types → 

Predefined Numeric Types

The data objects of the numeric data types are used to handle number values.

Properties

Type Length Standard Length Name
b 1 byte   1-byte integer (internal)
s 2 byte   2-byte integer (internal)
i 4 byte   4-byte integer
int8 8 byte   8-byte integer
p 1 to 16 bytes 8 byte Packed number
decfloat16 8 byte   Decimal floating point number with 16 places
decfloat34 16 byte   Decimal floating point number with 34 places
f 8 byte   Binary floating point number with 17 places

Value Ranges and Initial Values

Type Value Range Initial Value
b 0 to 255 0
s -32,768 to +32,767 0
i -2,147,483,648 to +2,147,483,647 0
int8 -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 0
p The valid length for packed numbers is between 1 and 16 bytes. Two places are packed into one byte, where the last byte only contains one place and the sign (the number of places or digits is calculated from 2 * len1). After the decimal separator, up to 14 decimal places are permitted (as long as the number of decimal places does not exceed the number of places). Depending on the field length len and the number of decimal places dec, the following applies to the value range: (-10^(2len-1) +1) / (10^(+dec)) to (+10^(2len-1) -1) /(10^(+dec)) in increments of 10^(-dec). Any intermediate values are rounded (decimal). Invalid content produces undefined behavior. 0
decfloat16 Decimal floating point numbers of this type are represented internally with 16 places in accordance with the IEEE-754-2008 standard. Valid values are numbers between 1E385(1E-16 - 1) and -1E-383 for the negative range, 0 and +1E-383 to 1E385(1 - 1E-16) for the positive range. Values lying between the ranges form the subnormal range and are rounded. Outside of the subnormal range, each 16-digit decimal number can be represented precisely with a decimal floating point number of this type 0
decfloat34 Decimal floating point numbers of this type are represented internally with 34 places in accordance with the IEEE-754-2008 standard. Valid values are numbers between 1E6145(1E-34 - 1) and -1E-6143 for the negative range, 0 and +1E-6143 and 1E6145(1 - 1E-34) for the positive range. Values lying between the ranges form the subnormal range and are rounded. Outside of the subnormal range, each 34-digit decimal number can be represented precisely using a decimal floating point number like this. 0
f Binary floating point numbers are represented internally in accordance with the IEEE-754 standard (double precision). In ABAP, 17 places are represented (one integer digit and 16 decimal places). Valid values are numbers between -1.7976931348623157E+308 and -2.2250738585072014E-308 for the negative range and between +2.2250738585072014E-308 and +1.7976931348623157E+308 for the positive range, plus 0. Both validity intervals are extended in the direction of zero using subnormal numbers in accordance with the IEEE-754 standard. 0

Programming Guideline

Select the numeric type

Notes

Example

Declares variables with built-in numeric ABAP types for a numeric calculation.

DATA: num1   TYPE i,
      num2   TYPE i,
      result TYPE decfloat34.

...

result = num1 / num2.

Executable Example

Value Ranges of Packed Numbers



Continue
Example Value Ranges of Packed Numbers