SAP: Cálculos aritméticos en ABAP

5
Aritmética en ABAP Alejandro Torrijos Página 1 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.

description

Manual sobre cálculos aritméticos y funciones matemáticas en ABAP

Transcript of SAP: Cálculos aritméticos en ABAP

Page 1: SAP: Cálculos aritméticos en ABAP

Aritmética en ABAP

Alejandro Torrijos Página 1

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.

Page 2: SAP: Cálculos aritméticos en ABAP

Aritmética en ABAP

Alejandro Torrijos Página 2

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.

Page 3: SAP: Cálculos aritméticos en ABAP

Aritmética en ABAP

Alejandro Torrijos Página 3

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

Page 4: SAP: Cálculos aritméticos en ABAP

Aritmética en ABAP

Alejandro Torrijos Página 4

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.

Page 5: SAP: Cálculos aritméticos en ABAP

Aritmética en ABAP

Alejandro Torrijos Página 5

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.