2007 Sep 27 9:03 AM
hi all,
i have a problem with value rounding to zero decimal places how can i do it.
i have a character field 'value' of length char30, after calculating i have condense it
condense:value. now i have to round the value to zero decimal places how can i do it. value = 499.72 ie, it should display value = 500.
2007 Sep 27 9:05 AM
move da value to type p varaible
data zround type p decimals 0.
move zch to zround.
2007 Sep 27 9:04 AM
data l_ans type i.
l_data = 499.72.
l_ans = round(l_data).
************************
DATA: X TYPE P DECIMALS 2 VALUE '12493.97'.
WRITE: /X ROUND -2, "output: 1,249,397.00
/X ROUND 0, "output: 12,493.97
/X ROUND 2, "output: 124.94
/X ROUND 5, "output: 0.12
2007 Sep 27 9:05 AM
2007 Sep 27 9:05 AM
move da value to type p varaible
data zround type p decimals 0.
move zch to zround.
2007 Sep 27 10:15 AM
HI THIS is how i have written but i am getting result in value but when i move it to zvalue the value is not comming.
DATA : V_INTNO(15) TYPE C,
VALUE TYPE CHAR30,
ZVALUE type P DECIMALS 0.
DATA : BEGIN OF ITAB OCCURS 0,
EXBAS LIKE J_1IEXCDTL-EXBAS,
END OF ITAB.
READ TABLE in_tab WITH KEY name = 'J_1IEXCDTL-DOCNO'.
SELECT SUM( EXBAS ) AS EXBAS INTO ITAB-EXBAS FROM J_1IEXCDTL WHERE DOCNO = in_tab-value
AND TRNTYP = '57FC'.
READ TABLE out_tab WITH KEY name = 'V_EXBAS'.
IF sy-subrc = 0.
VALUE = ITAB-EXBAS * '16.48'.
VALUE = VALUE / 100.
CONDENSE: VALUE.
MOVE VALUE TO ZVALUE.
out_tab-value = ZVALUE.
MODIFY out_tab INDEX sy-tabix.
ENDIF.
2007 Sep 27 10:21 AM
try dis:
IF sy-subrc = 0.
VALUE = ITAB-EXBAS * '16.48'.
VALUE = VALUE / 100.
REPLACE ',' in value WITH space.
condense value.
MOVE VALUE TO ZVALUE.
move zvalue to out_tab-value.
MODIFY out_tab INDEX sy-tabix.
ENDIF.
Message was edited by:
abapuser
2007 Sep 27 9:06 AM
Hi,
You can use the numerical Function ROUND to round off the decimal places.
round_or_trunc_spec
Syntax Rules for Column Descriptions
Syntax
<round_or_trunc_spec> ::= ROUND <valFRACTION> | TRUNC <valFRACTION>
valFRACTION
Number of decimal places
The value must be between 0 and 18. This function doe not have any effect if the number does not have any decimal places.
Use
Use this syntax rule to specify the number of decimal places in a number.
ROUND <valFRACTION>
The value is rounded off at the (<valFRACTION>1) th decimal place. If this number is >= 5, the value is rounded up. If it is < 5, the value is rounded down. The result is a number in which the (<valFRACTION>1)th and all subsequent decimal places are equal to 0. The other digits in the number may have been changed if the value was rounded up.
DATALOAD TABLE distance
...
cm 7 SCALE 2
cm 7 SCALE -3 ROUND 1
...
INFILE 'meter.data'
TRUNC <valFRACTION>
The (<valFRACTION>+1)th and all subsequent decimal places of the value are set to 0. The first <valFRACTION> decimal places remain unchanged.
DATAEXTRACT * FROM distance
cm 10-14 INTEGER SCALE 2
m 14-17 INTEGER
km 18-21 INTEGER SCALE -3 TRUNC 2
OUTFILE 'dimensions.bin' FORMATTED
Thanks,
Reward If Helpful.
2007 Sep 27 9:06 AM
hi abinash,
i will give u sample progam, it consists of all type of conversions.
Pls copy and paste the prg and execute it.
parameters : a type p decimals 3.
data : abs like a,
ceil like a,
floor like a,
trunc like a,
frac like a,
sign like a.
abs = abs( a ).
sign = sign( a ).
ceil = ceil( a ).
floor = floor( a ).
trunc = trunc( a ).
frac = frac( a ).
write : 'THE ABSOLUTE VALUE OF ', a,'IS', abs,
/ 'THE SIGN OF ARGUMENT ', a,'IS', sign,
/ 'THE SMALLEST INTEGER VALUE', a,'IS', floor,
/ 'THE LARGEST INTEGER VALUE ', a,'IS', ceil,
/ 'THE FRACTION PART ', a,'IS', frac,
/ 'THE INTEGRAL PART ', a,'IS', trunc.
<b>Pls reward if helpful.</b>
2007 Sep 27 9:07 AM
hi,
data: n type i,<---
x(30).
x = 499.72.
write x to n.<---
revrt back if any issues.
Regards,
Naveen
2007 Sep 27 10:23 AM
Hi
<b>Check this :</b>
DATA pack TYPE p VALUE '499.72 '.
WRITE pack NO-GROUPING ROUND 3 DECIMALS 2.
WRITE pack NO-GROUPING ROUND 4 DECIMALS 2.
WRITE pack NO-GROUPING ROUND 5 DECIMALS 4.
WRITE pack NO-GROUPING ROUND 0 DECIMALS 2.
OUTPUT: 0.50 0.05 0.0050 500.00
<b>-Charitha.</b>
2007 Sep 27 10:40 AM