You are on page 1of 5

Aritmética en ABAP

CÁLCULOS MATEMÁTICOS EN ABAP

Los operadores aritméticos en ABAP son

Suma a=b+c ADD b TO c

Resta a=b–c SUBTRACT b FROM c

Multiplicación a=b*c MULTIPLY b BY c

División a=b/c DIVIDE b BY c

División entera a = b DIV c

Resto de la división entera a = b MOD c

Exponente a = b ** c

Todos los cálculos en ABAP deben ser entre variables de tipos iguales
o compatibles (i, f, p…).

Si dos variables tienen distinto tipo se convierten al tipo de la variable


del valor más alto.

En caso de que un argumento sea una función todo se convierte al


tipo de la función.

Alejandro Torrijos Página 1


Aritmética en ABAP

No se puede dividir por cero. Esto genera un error en tiempo de


ejecución. Es un error manejable (catchable).

La multiplicación y división se realizan antes que las sumas y las


restas. Las operaciones que aparecen entre paréntesis se realizan en
primer lugar. Las operaciones de igual importancia se realizan de
izquierda a derecha. Las operaciones entre paréntesis se realizan las
primeras.

FUNCIONES MATEMÁTICAS

ABAP incluye las siguientes funciones matemáticas

ABS valor absoluto

SIGN devuelve los siguientes valores según el signo del


argumento:

Si menor que cero devuelve -1

Si mayor que cero devuelve 1

Si igual a cero devuelve 0

CEIL redondea hacia arriba, por ejemplo 3.2 a 4

FLOOR redondea hacia abajo, por ejemplo 3.6 a 3

TRUNC trunca la parte decimal, por ejemplo 3.5 a 3

FRAC devuelve la parte decimal

La sintaxis para todas las funciones es función(argumento). El tipo


del resultado es el mismo que el del argumento. Por ejemplo

DATA x TYPE f VALUE 3.2.

DATA y TYPE i.

Alejandro Torrijos Página 2


Aritmética en ABAP

y = FRAC( x ).

WRITE / y.

En este caso se mostrará por pantalla el número 0.2 y la variable y


pasa a tener tipo f.

Las siguientes funciones sólo se pueden usar con variables de tipo f.

ACOS, ASIN, ATAN, COS, SIN, TAN funciones trigonométricas

EXP exponente con base e

LOG logaritmo neperiano (base e)

LOG10 logaritmo (base 10)

SQRT raíz cuadrada

En operaciones con estas funciones todas las variables pasan a tener


tipo f, por ejemplo

DATA x TYPE i VALUE 9.

DATA y(5) TYPE c.

y = SQRT( x ).

En este caso la variable y guarda un valor de 00003 y pasa a tener


tipo f.

La tipo de variable p (packed) está especialmente diseñado para


operaciones comerciales.

Para usar este tipo debe estar seleccionada la casilla Fixed Point
Arithmetic. En caso contrario el sistema considera la variable de tipo
Alejandro Torrijos Página 3
Aritmética en ABAP

p como si fuera de tipo i, es decir, como un número entero (trunca


los decimales). Recordemos que hay que definir también el número
de decimales, por ejemplo

DATA dinero TYPE p DECIMALS 2 VALUE 5.25.

En este caso hemos declarado una variable llamada dinero que


guarda un valor de 5.25. (máximo 2 decimales).

CÁLCULOS ARITMÉTICOS USANDO ESTRUCTURAS

Si todos los componentes de una estructura son numéricos podemos


realizar las siguientes operaciones:

 ADD-CORRESPONDING
 SUBTRACT-CORRESPONDING
 MULTIPLY-CORRESPONDING
 DIVIDE-CORRESPONDING

ABAP realiza los cálculos entre los componentes que tengan el mismo
nombre en las dos estructuras. Por ejemplo:

DATA: BEGIN OF cambio,

euro TYPE f VALUE 1.4,

END OF cambio.

DATA: BEGIN OF dinero,

euro TYPE f VALUE 100,

END OF dinero.

MULTIPLY-CORRESPONDING cambio BY dinero.

WRITE / dinero-euro.

El sistema mostrará por pantalla el valor de 140.

Alejandro Torrijos Página 4


Aritmética en ABAP

SUMA DE SECUENCIAS DE CAMPOS

La instrucción ADD tiene variantes, por ejemplo sumar varios campos


y asignar el resultado a otro campo

ADD x1 THEN x2 UNTIL xz GIVING y.

Si x1, x2…xz es una secuencia de campos del mismo tipo y longitud,


se suman y el resultado se asigna a y.

También podemos sumar secuencias de campos al contenido de otro


campo.

ADD x1 THEN x2 UNTIL xz TO y.

Tanto las operaciones matemáticas entre estructuras como la suma


de los campos de una estructura son instrucciones que actualmente
se desaconsejan por los estándares ABAP.

Alejandro Torrijos Página 5

You might also like