Portal | IBM Manuals | Downloads | Products | Refer | Info | Programs | JCLs | Forum Rules*| Site Map | Mainframe CD 
IBMMAINFRAMES.com - IBM Mainframe Support Forums Index
 
Register
 
IBMMAINFRAMES.com - IBM Mainframe Support Forums Index FAQ Search Memberlist Usergroups Profile Log in to check your private messages Log in
 
Expecting Decimal point in COMPUTE verb

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> Mainframe COBOL
Author Message
alluri12

New User


Joined: 15 Aug 2006
Posts: 24

PostPosted: Sat Feb 24, 2007 1:45 am    Post subject: Expecting Decimal point in COMPUTE verb
Reply with quote

Hi guys,
In a program I am using
01 WS-VALUE1 PIC9(10) VALUE 2336440320
01 WS-COMPUTED-VALUE PIC9(02)V9(03)

Compute WS-COMPUTED-VALUE ROUNDED = (WS-VALUE1/3999999999)*100

The result i am getting is 5841.

I am expecting is 58.41

Could you please provide me some solution for this

Thanks
Back to top
View user's profile Send private message
References
superk

Moderator Team Head


Joined: 26 Apr 2004
Posts: 3304
Location: Charlotte,NC USA

PostPosted: Sat Feb 24, 2007 2:06 am    Post subject: Re: Compute Verb
Reply with quote

My result using your code is 58.410.
Back to top
View user's profile Send private message
dick scherrer

Global Moderator


Joined: 23 Nov 2006
Posts: 8729
Location: 221 B Baker St

PostPosted: Sat Feb 24, 2007 2:12 am    Post subject:
Reply with quote

Hello,

I'd recomend placing periods at the end of your statements.

In this
Code:
01 WS-COMPUTED-VALUE PIC9(02)V9(03)

field, there is no decimal point defined - what you have is an implied decimal, not an explicit one. If you wan to see the '.', you must include it in the definition.
Back to top
View user's profile Send private message
William Thompson

Global Moderator


Joined: 18 Nov 2006
Posts: 2977
Location: Tucson AZ

PostPosted: Sat Feb 24, 2007 2:28 am    Post subject:
Reply with quote

How do you know you are getting 5841 rather than 58.41?
Back to top
View user's profile Send private message
dick scherrer

Global Moderator


Joined: 23 Nov 2006
Posts: 8729
Location: 221 B Baker St

PostPosted: Sat Feb 24, 2007 2:57 am    Post subject:
Reply with quote

Hello again,

With the implied and then the explicit decimal point
Code:

01  WS-VALUE1 PIC 9(10) VALUE 2336440320.
01  WS-COMPUTED-VALUE PIC 9(02)V9(03).   
01  WS-DOT-VALUE      PIC 9(02).9(03).   

       COMPUTE WS-COMPUTED-VALUE ROUNDED =       
               (WS-VALUE1/3999999999)*100.       
       DISPLAY WS-COMPUTED-VALUE.                 
       MOVE WS-COMPUTED-VALUE TO WS-DOT-VALUE.   
       DISPLAY WS-DOT-VALUE.                     

you get
Code:

58410   
58.410 
Back to top
View user's profile Send private message
alluri12

New User


Joined: 15 Aug 2006
Posts: 24

PostPosted: Sat Feb 24, 2007 3:13 am    Post subject: Re: Compute Verb
Reply with quote

Thanks guys for replying so fast. It helps.
Dick, you explaination was crystal clear... thankyou
Back to top
View user's profile Send private message
dick scherrer

Global Moderator


Joined: 23 Nov 2006
Posts: 8729
Location: 221 B Baker St

PostPosted: Sat Feb 24, 2007 3:23 am    Post subject:
Reply with quote

You're welcome icon_smile.gif
Back to top
View user's profile Send private message
William Thompson

Global Moderator


Joined: 18 Nov 2006
Posts: 2977
Location: Tucson AZ

PostPosted: Sat Feb 24, 2007 4:53 am    Post subject:
Reply with quote

dick scherrer wrote:
With the implied and then the explicit decimal point
Dang, ya beat me to it...I was heading there, I was just fishing for confirmation..... icon_biggrin.gif

Good call! icon_wink.gif
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> Mainframe COBOL All times are GMT + 6 Hours
Page 1 of 1