* Salve Abapers, vamos conversar hoje sobre comandos que ajudam muito
* a gente quando estamos trabalhando com valores e números, são todos
* comandos simples, e como sempre feito pelo Blog, vou explicar e dar
* pelomenos um exemplo...
*&---------------------------------------------------------------------*
REPORT z_work_with_numbers.
* Primeiro vamos declarar as variáveis que vamos trabalhar...
DATA : v_int_pos TYPE i VALUE '5',
v_int_zero TYPE i VALUE '0',
v_int_neg TYPE i VALUE '-5',
v_dec_pos TYPE p DECIMALS 2 VALUE '1234.56',
v_dec_neg TYPE p DECIMALS 2 VALUE '-1234.89',
v_string TYPE string VALUE 'a1bcde2fg3hij5lmn78z'.
* Variáveis para tratativas numéricas
DATA : v_sign TYPE i,
v_trunc TYPE i,
v_frac TYPE p DECIMALS 2,
v_sqrt TYPE p DECIMALS 2,
v_sqrt_f TYPE f,
v_mod TYPE i,
v_div TYPE i
.
* Variáveis para tratativas alfanumericos.
DATA : v_strlen TYPE i
.
BREAK-POINT.
* SIGN - Esse comando informa o sinal do valor, nas condições abaixo,
* Varialvel > 0 = 1,
* Varialvel = 0 = 0,
* Varialvel < 0 = -1.
v_sign = SIGN( v_int_pos ) .
v_sign = SIGN( v_int_zero ) .
v_sign = SIGN( v_int_neg ) .
BREAK-POINT.
* TRUNC - Esse comando retorna a parte inteira de um número fracionado.
v_trunc = TRUNC( v_dec_pos ).
v_trunc = TRUNC( v_dec_neg ).
BREAK-POINT.
* FRAC - Esse comando retorna a parte fracionada do número.
v_frac = FRAC( v_dec_pos ).
v_frac = FRAC( v_dec_neg ).
v_frac = FRAC( v_int_pos ).
BREAK-POINT.
* SQRT - Raiz Quadrada, de um número positivo. Se você usar numero negativo ele
* vai dar Dump.
v_sqrt = SQRT( v_int_pos ).
v_sqrt_f = SQRT( v_int_pos ).
BREAK-POINT.
* DIV - informa o numero exato de uma divisão.
* MOD - Informa o saldo de uma divisão.
v_div = 13 DIV 4.
v_mod = 13 MOD 4.
BREAK-POINT.
* STRLEN - Esse comando retorna a quantidade de caracteres que tem a variável,
* esse comando funciona para tipos especificos de data-types.(C, N, D, T ou string)
v_strlen = STRLEN( v_string ).
BREAK-POINT.
Excelente iniciativa, parabéns por disponiblizar seus conhecimentos!
ResponderExcluirEstou começando no mundo ABAP, muito bom me ajudou a resolver uma atividade.
ResponderExcluir