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

Issue in Moving Alphanumeric x(03) to signed numeric s9(03)


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

New User


Joined: 04 Feb 2008
Posts: 65
Location: Hyd

PostPosted: Fri Feb 14, 2014 12:14 pm
Reply with quote

Hi,

In one of our cobol requirement, I have cobol move as below

Code:
MOVE FIELD-1   TO   FIELD-2


FIELD-1 is the input copybook field with declaration X(03) and FIELD-2 is the output copybook field with declaration S9(03),I notice the mapping is not happening properly and output value is populating incorrectly.

Example 1:when we move input value 10 the output value is taking as +100 instead of +10.

Example 2:when we move input value 1 the output value is taking as '+1 0' instead of +1 . Can some one help me on this.

Note : Input will always have numeric value and input copybook fields FIELD-1 FIELD-2 declarations not to be changed.
Back to top
View user's profile Send private message
Pandora-Box

Global Moderator


Joined: 07 Sep 2006
Posts: 1592
Location: Andromeda Galaxy

PostPosted: Fri Feb 14, 2014 12:21 pm
Reply with quote

Use FUNCTION NUMVAL
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Fri Feb 14, 2014 2:06 pm
Reply with quote

Use UNSTRING ... DELIMITED BY SPACE

Ensure that zero as your input does not appear as blank.

NUMVAL will work, but is a bit of a sledgehammer.
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Fri Feb 14, 2014 4:01 pm
Reply with quote

Sledgehammer because it uses a run-time routine which understands all editing possibilities for the data (which has none in this case) and which returns the value as a floating-point number which then has to go through several conversions to become the PIC 999. Check the generated code.

The UNSTRING doesn't do so much. If keen, there are lots of other ways to do it.
Back to top
View user's profile Send private message
rohanthengal

Active User


Joined: 19 Mar 2009
Posts: 206
Location: Globe, India

PostPosted: Thu Feb 20, 2014 12:29 pm
Reply with quote

yes, FUNCTION NUMVAL looks fine
Back to top
View user's profile Send private message
Bill Woodger

Moderator Emeritus


Joined: 09 Mar 2011
Posts: 7309
Location: Inside the Matrix

PostPosted: Thu Feb 20, 2014 12:52 pm
Reply with quote

After all, clinet pays for CPU so may as well use as much as you can...
Back to top
View user's profile Send private message
Rohit Umarjikar

Global Moderator


Joined: 21 Sep 2010
Posts: 3048
Location: NYC,USA

PostPosted: Sat Feb 22, 2014 1:57 am
Reply with quote

Kalyan, A little search could have avoided this thread as a very thoughtful discussion on the same requirement is already available over this forum and I am sure there are many as such.

ibmmainframes.com/viewtopic.php?t=56905&postdays=0&postorder=asc&start=0
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 SFTP Issue - destination file record ... All Other Mainframe Topics 2
No new posts Issue after ISPF copy to Linklist Lib... TSO/ISPF 1
No new posts Moving Or setting POINTER to another ... COBOL Programming 2
No new posts Convert HEX to Numeric DB2 3
No new posts Facing ABM3 issue! CICS 3
Search our Forums:

Back to Top