Precisa arredondar um valor em um programa ABAP?
Então conheça Os Operadores Aritméticos ABAP:
Instrução
|
Descrição
|
FLOOR()
|
Arredonda para baixo.
|
CEIL()
|
Arredonda para cima.
|
FRAC()
|
Retorna decimais de um valor.
|
Sintaxe:
DATA:
v_valor_01(4) TYPE p DECIMALS 2,
v_valor_02(4) TYPE p DECIMALS 2,
v_valor_03(4) TYPE p DECIMALS 2,
v_valor_04(4) TYPE p DECIMALS 2,
v_valor_05(4) TYPE p DECIMALS 2,
v_valor_06(4) TYPE p DECIMALS 2,
v_floor1(4) TYPE p DECIMALS 2,
v_floor2(4) TYPE p DECIMALS 2,
v_ceil1(4) TYPE p DECIMALS 2,
v_ceil2(4) TYPE p DECIMALS 2,
v_frac1(4) TYPE p DECIMALS 2,
v_frac2(4) TYPE p DECIMALS 2.
* Valores usandos para o FLOOR(Arredondamento para baixo)
v_valor_01 = '10.03'.
v_valor_02 = '10.06'.
* Valores usandos para o CEIL(Arredondamento para cima)
v_valor_03 = '10.03'.
v_valor_04 = '10.06'.
* Valores usandos para o FRAC(Retorna os decimais do valor)
v_valor_05 = '10.03'.
v_valor_06 = '10.06'.
*Logica do FLOOR(Arredondamento para baixo)
v_floor1 = floor( v_valor_01 ).
v_floor2 = floor( v_valor_02 ).
*Logica do CEIL(Arredondamento para cima)
v_ceil1 = ceil( v_valor_03 ).
v_ceil2 = ceil( v_valor_04 ).
*Logica do FRAC(Retorna os decimais do valor)
v_frac1 = frac( v_valor_05 ).
v_frac2 = frac( v_valor_06 ).
* Arredondamento para baixo com o FRAC.
v_frac1 = v_valor_05 - v_frac1.
* Arredondamento para cima com o FRAC.
v_frac2 = v_valor_06 - v_frac2 + 1.
WRITE:
'Floor:',
/ v_floor1, ' (Arredondamento para baixo)',
/ v_floor2, ' (Arredondamento para baixo)',
/ 'CEIL:',
/ v_ceil1, ' (Arredondamento para cima)',
/ v_ceil2, ' (Arredondamento para cima)',
/ 'FRAC:',
/ v_frac1, ' (Arredondamento para baixo)',
/ v_frac2, ' (Arredondamento para cima)'.
O resultado mostra que
não importa que os decimais são maiores ou menos que 0.5, o valor sempre será arredondado. =D
0 comentários:
Postar um comentário