Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

how to delete decimal values zeros

Former Member
0 Kudos

Hi experts,

i am using mseg-menge field ( lenth13 and decimals 3) in my alv grid report.

eg: 2.3456.000

user wants only 2.3456 no decimals.

how we can aviod decimals 0 s in report.

thanks in advance.

mahahe

1 ACCEPTED SOLUTION

Former Member
0 Kudos

I search this ways in the forums:

Shift

SHIFT varb1 RIGHT DELETING TRAILING '0'. 

write: gv_variable decimals 0.

SHIFT VALUE LEFT DELETING LEADING '0'.

Shift2

DATA: T(14) VALUE ' abcdefghij',
STRING LIKE T,
STR(6) VALUE 'ghijkl'.

STRING = T.
WRITE STRING.

SHIFT STRING LEFT DELETING LEADING SPACE (or use 0 to detete 0).
WRITE / STRING.

STRING = T.
SHIFT STRING RIGHT DELETING TRAILING STR or 0.
WRITE / STRING.

Shift3

data amt(6) type p decimals 3 value '123.450'.
data amt1(6) type p decimals 2.
data amt_c(6) type c.
unpack amt to amt_c.
shift amt_c right deleting trailing '0'.
pack amt_c to amt1.
 
write amt1.

use FM

FTR_CORR_SWIFT_DELETE_ENDZERO

this FM will remove all the zeros from decimal values like

value - 234.8000000

output - 234.8

IF

data: var1 type p decimals 3,
      var2 type p decimals 2,
      var3 type p decimals 1.
move '12345.100' to var1.
move var1 to var2.
move var1 to var3.
 
if var2 = var1.
  if var3 = var1.
    write var3.
  else.
    write var2.
  endif.
else.
  write var1.
endif.

I hope that this solve your problem.

Cordial greetings.

2 REPLIES 2

former_member226519
Active Contributor
0 Kudos

declare a variable type p decimals 0

or use WRITE ... USING EDIT-MASK

Former Member
0 Kudos

I search this ways in the forums:

Shift

SHIFT varb1 RIGHT DELETING TRAILING '0'. 

write: gv_variable decimals 0.

SHIFT VALUE LEFT DELETING LEADING '0'.

Shift2

DATA: T(14) VALUE ' abcdefghij',
STRING LIKE T,
STR(6) VALUE 'ghijkl'.

STRING = T.
WRITE STRING.

SHIFT STRING LEFT DELETING LEADING SPACE (or use 0 to detete 0).
WRITE / STRING.

STRING = T.
SHIFT STRING RIGHT DELETING TRAILING STR or 0.
WRITE / STRING.

Shift3

data amt(6) type p decimals 3 value '123.450'.
data amt1(6) type p decimals 2.
data amt_c(6) type c.
unpack amt to amt_c.
shift amt_c right deleting trailing '0'.
pack amt_c to amt1.
 
write amt1.

use FM

FTR_CORR_SWIFT_DELETE_ENDZERO

this FM will remove all the zeros from decimal values like

value - 234.8000000

output - 234.8

IF

data: var1 type p decimals 3,
      var2 type p decimals 2,
      var3 type p decimals 1.
move '12345.100' to var1.
move var1 to var2.
move var1 to var3.
 
if var2 = var1.
  if var3 = var1.
    write var3.
  else.
    write var2.
  endif.
else.
  write var1.
endif.

I hope that this solve your problem.

Cordial greetings.