Autor Tema: Ejemplos de Redondeo y Decimales en ABAP  (Leído 8597 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado molaci

  • Usuario Sr.
  • ****
  • Mensajes: 113
    • Ver Perfil
Ejemplos de Redondeo y Decimales en ABAP
« en: 01 de Marzo de 2018, 09:50:09 am »
Estas son unas instrucciones básicas para trabajar con redondeos, valores absolutos, etc...

DATA n1 TYPE p DECIMALS 2.
DATA m1 TYPE p DECIMALS 2 VALUE '-5.55'.

DATA n2 TYPE p DECIMALS 2.
DATA m2 TYPE p DECIMALS 2 VALUE '5.15'.

n1 = abs( m1 ).   WRITE: / 'ABS  : ', n1.
n1 = sign( m1 ).  WRITE: / 'SIGN : ', n1.
n1 = ceil( m1 ).  WRITE: / 'CEIL : ', n1.
n1 = floor( m1 ). WRITE: / 'FLOOR: ', n1.
n1 = trunc( m1 ). WRITE: / 'TRUNC: ', n1.
n1 = frac( m1 ).  WRITE: / 'FRAC : ', n1.

SKIP.

n2 = abs( m2 ).   WRITE: / 'ABS  : ', n2.
n2 = sign( m2 ).  WRITE: / 'SIGN : ', n2.
n2 = ceil( m2 ).  WRITE: / 'CEIL : ', n2.
n2 = floor( m2 ). WRITE: / 'FLOOR: ', n2.
n2 = trunc( m2 ). WRITE: / 'TRUNC: ', n2.
n2 = frac( m2 ).  WRITE: / 'FRAC : ', n2.


Resultado final para N1
ABS  :              5,55  "Valor absoluto
SIGN :              1,00- "*
CEIL :              5,00- "Redondea hacia arriba
FLOOR:              6,00- "Redondea hacia abajo
TRUNC:              5,00- "Parte entera
FRAC :              0,55- "Parte decimal

Resultado final para N2
ABS  :              5,15  "Valor absoluto
SIGN :              1,00
CEIL :              6,00  "Redondea hacia arriba
FLOOR:              5,00  "Redondea hacia abajo
TRUNC:              5,00  "Parte entera
FRAC :              0,15  "Parte decimal

*El comando SIGN funciona de la siguiente manera:
Si el valor es > 0, devuelve  1.
Si el valor es = 0, devuelve  0.
Si el valor es < 0, devuelve -1.