In SAP ABAP, integer division follows specific rules because ABAP does not support direct integer division where the result remains an integer. Instead, division in ABAP always produces a decimal result unless explicitly converted.
1. Normal Division (Decimal Result)
When dividing two integers, ABAP returns a decimal value.
DATA: lv_num1 TYPE I VALUE 10, lv_num2 TYPE I VALUE 3, lv_result TYPE F. "Floating-point type
lv_result = lv_num1 / lv_num2.WRITE: lv_result. "Output: 3.33333332. Integer Division (Truncate Decimal Part)
To perform integer division and discard the decimal part, use DIV keyword:
DATA: lv_num1 TYPE I VALUE 10, lv_num2 TYPE I VALUE 3, lv_result TYPE I.
lv_result = lv_num1 DIV lv_num2.WRITE: lv_result. "Output: 33. Modulo (Remainder Calculation)
If you need the remainder, use MOD:
DATA: lv_remainder TYPE I.
lv_remainder = lv_num1 MOD lv_num2.WRITE: lv_remainder. "Output: 14. Using Float for Precise Division
If you want a precise result, use F (Floating-point) or P (Packed decimal) types:
DATA: lv_result TYPE P DECIMALS 2.
lv_result = lv_num1 / lv_num2.WRITE: lv_result. "Output: 3.33