Application Development and Automation 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: 
Read only

Syntax with decimals

Former Member
0 Likes
625

Hi,

Can any one help on the syntax.

if value format is 1.000 then I should get it as 1 and

if value format is 0.120 then it should remain as 0.120.

I have tried with systax mod but it does not work.

Any help would be appreciated.

Thanks,

Satish

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
591

Try:


REPORT ztest MESSAGE-ID 00.

DATA: p(6) TYPE p DECIMALS 3 VALUE '1.000',
      q(6) TYPE p DECIMALS 3 VALUE '0.120',
      i TYPE i.

MOVE p TO i.

IF i = p.
  WRITE: /001 i.
ELSE.
  WRITE: /001 p.
ENDIF.

MOVE q TO i.

IF i = p.
  WRITE: /001 i.
ELSE.
  WRITE: /001 q.
ENDIF.

Rob

4 REPLIES 4
Read only

Former Member
0 Likes
591

hi Mark,

One way of doing that is as below

data var1 type float value '1.000',

var2 type i.

var2 = var1.

write : var1, var2.

else,

<b> if var1 >= 1.

var2 = var1.

var1 = var2.

else.

var1 = var1.

endif.

write : var1, var2.</b>

Regards,

Santosh

Read only

0 Likes
591

Here is one way.



report zrich_0001 .

data: var1 type p decimals 3 value '1.123'.
data: var2 type i.
data: fraction type p decimals 3.

fraction = frac( var1 ).

if fraction > 0.
  write:/ var1.
else.
  var2 = var1.
  write:/ var2.
endif.

Regards,

Rich Heilman

Read only

Former Member
0 Likes
592

Try:


REPORT ztest MESSAGE-ID 00.

DATA: p(6) TYPE p DECIMALS 3 VALUE '1.000',
      q(6) TYPE p DECIMALS 3 VALUE '0.120',
      i TYPE i.

MOVE p TO i.

IF i = p.
  WRITE: /001 i.
ELSE.
  WRITE: /001 p.
ENDIF.

MOVE q TO i.

IF i = p.
  WRITE: /001 i.
ELSE.
  WRITE: /001 q.
ENDIF.

Rob

Read only

Former Member
0 Likes
591

Hi Mark,

you can use 'frac' statement to check if the decimals part is '0' or not.

*Code starts here

*var1 can have either '0.120' or '1.000' value

data : var1 type p decimals 3,

var2 type p decimals 3,

var3 type i.

var2 = frac( var1 ).

if var2 eq 0. " true for '1.000' value

var3 = var1. "var3 will be '1' now

endif.

*else use var1 only which will be '0.120'

*Code end here

Cheers,

Vikram

Pls reward for helpful replies!!