P. 1
SAP: Cálculos aritméticos en ABAP

SAP: Cálculos aritméticos en ABAP

5.0

|Views: 12.045|Likes:
Publicado porAlejandro Torrijos
Manual sobre cálculos aritméticos y funciones matemáticas en ABAP
Manual sobre cálculos aritméticos y funciones matemáticas en ABAP

More info:

Published by: Alejandro Torrijos on Jan 31, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/17/2014

pdf

text

original

Aritmética en ABAP

CÁLCULOS MATEMÁTICOS EN ABAP
Los operadores aritméticos en ABAP son

Suma Resta Multiplicación División División entera

a=b+c a=b–c a=b*c a=b/c

ADD b TO c SUBTRACT b FROM c MULTIPLY b BY c DIVIDE b BY c a = b DIV c a = b MOD c a = b ** c

Resto de la división entera Exponente

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 SIGN

valor absoluto 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 FLOOR TRUNC FRAC

redondea hacia arriba, por ejemplo 3.2 a 4 redondea hacia abajo, por ejemplo 3.6 a 3 trunca la parte decimal, por ejemplo 3.5 a 3 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 EXP LOG LOG10 SQRT

funciones trigonométricas exponente con base e logaritmo neperiano (base e) logaritmo (base 10) 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're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->