SAP: Cálculos aritméticos en ABAP
-
Upload
alejandro-torrijos -
Category
Documents
-
view
10.971 -
download
41
description
Transcript of 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.
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.
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
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.
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.