En ABAP puede programar expresiones aritméticas hasta cualquier nivel de anidamiento. También se utiliza igual que en matemática paréntesis para priorizar el orden de la ejecución de los cálculos. Para indicar que es una operación de cálculo se utiliza la palabra clave COMPUTE que al final con las nuevas versiones se ha convertido en una palabra clave opcional.
Ejemplo de sumatorio utilizando compute:
COMPUTE resultado = numero_1 + numero_2.
La misma sentencia se puede escribir sin COMPUTE:
resultado = numero_1 + numero_2.
Para utilizar las operaciones aritméticas según su tipo debe utilizar los siguientes operadores:
- + o ADD para la suma
Para sumar en ABAP podemos utilizar el carácter + o la palabra clave ADD. Con las dos posibilidades se obtiene el mismo resultado de la operación. Podemos sumar variables de tipo numéricos enteros o con decimales.
Suma un valor al contenido de un campo.
ADD <valor> TO <resultado>.
También se puede utilizar el operador ‘+’.
<resultado> = <resultado> + <valor>.
Ejemplo práctico:
- – o SUBTRACT para la resta
Para restar se utiliza el carácter – o la palabra clave SUBTRACT. Con las dos posibilidades se obtiene el mismo resultado de la operación. Podemos utilizar variables de tipo numéricos enteros o con decimales.
Resta un valor al contenido de una variable.
SUBTRACT <valor> FROM <resultado>.
También se puede utilizar el operador ‘–’.
<resultado> = <resultado> – <valor>.
Ejemplo práctico:
- * Multiplicación
Para multiplicación en ABAP podemos utilizar el carácter * o la palabra clave MULTIPLY. Con las dos posibilidades se obtiene el mismo resultado de la operación. Podemos utilizar variables de tipo numéricos enteros o con decimales.
Multiplica por un valor el contenido de un campo.
MULTIPLY <resultado> BY <valor>.
También se puede utilizar el operador ‘*’.
<resultado> = <resultado> * <valor>.
Ejemplo práctico:
- / División
Para la división tenemos que utilizar el carácter /.
El operador ‘/’ devuelve el cociente con decimales.
<resultado> = <valor1> / <valor2>.
Ejemplo práctico:
DATA: resultado TYPE i.
resultado = 8 / 2.
- ** Exponenciación
Para el exponenciación utilizamos el operador **
Ejemplo práctico:
DATA: resultado TYPE i,
valor TYPE i.
resultado = valor ** 2.
- DIV – División integral sin resto
La palabra clave DIV devuelve el cociente de una división entera.
<resultado> = <valor_1> DIV <valor_2>.
Ejemplo práctico:
DATA: resultado TYPE p LENGTH 6 DECIMALS 2,
valor_1 TYPE i,
valor_2 TYPE i.
valor_1 = 9.
valor_2 = 4.
resultado = valor_1 / valor_2.
resultado = valor_1 DIV valor_2.
WRITE resultado.
Tras ejecutar el programa el resultado es 2, que representa el cociente de una división entera entre 9 y 4.
- MOD – Resto de la división integral
La palabra clave MOD devuelve el resto de una división entera.
<resultado> = <valor1_> MOD <valor_2>.
Ejemplo práctico:
DATA: resultado TYPE p LENGTH 6 DECIMALS 2,
valor_1 TYPE i,
valor_2 TYPE i.
valor_1 = 9.
valor_2 = 4.
resultado = valor_1 / valor_2.
resultado = valor_1 MOD valor_2.
WRITE resultado.
Tras ejecutar el programa el resultado es 1, que representa el resto de la división entera división entera entre 9 y 4.
- Sentencia SQRT.
Devuelve la raíz cuadrada de un valor.
<resultado> = SQRT( <valor> ).
Ejemplo práctico:
DATA resultado TYPE i.
resultado = sqrt( 25 ).