IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Expecting Decimal point in COMPUTE verb


IBM Mainframe Forums -> COBOL Programming
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
alluri12

New User


Joined: 15 Aug 2006
Posts: 44
Location: Virginia, USA

PostPosted: Sat Feb 24, 2007 1:45 am
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
superk

Global Moderator


Joined: 26 Apr 2004
Posts: 4652
Location: Raleigh, NC, USA

PostPosted: Sat Feb 24, 2007 2:06 am
Reply with quote

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

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Sat Feb 24, 2007 2:12 am
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: 3156
Location: Tucson AZ

PostPosted: Sat Feb 24, 2007 2:28 am
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

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Sat Feb 24, 2007 2:57 am
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: 44
Location: Virginia, USA

PostPosted: Sat Feb 24, 2007 3:13 am
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

Moderator Emeritus


Joined: 23 Nov 2006
Posts: 19244
Location: Inside the Matrix

PostPosted: Sat Feb 24, 2007 3:23 am
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: 3156
Location: Tucson AZ

PostPosted: Sat Feb 24, 2007 4:53 am
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
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> COBOL Programming

 


Similar Topics
Topic Forum Replies
No new posts Extracting Variable decimal numbers f... DFSORT/ICETOOL 17
No new posts Point and Shoot )PTNS TSO/ISPF 0
No new posts Need Help with Packed Decimal Signs DFSORT/ICETOOL 4
No new posts A directory in the pathname was not f... ABENDS & Debugging 0
No new posts Select a DB2 value in a specific deci... DB2 4
Search our Forums:

Back to Top