Hi All,
Can anyone tell me how we can MOVE value of a X(19)
variable to a S9(17) COMP-3 variable?
Answer with an Example will be of great help.
Answers were Sorted based on User's Feedback
Answer / nicx
The function NUMVAL can be used to change the X(19) to S
(17) and then moved to comp-3
Ex:
ws-variable PIC X(19)
ws-variable-1 PIC S9(17)
ws-variable-1 PIC S9(17) comp-3
Compute ws-variable-1 = function numval(ws-variable)
move ws-variable-1 to ws-variable-2.
Ofcourse you should be expecting a signed 9(17) value in
the ws-variable. Check out NUMVAL-C too. Both functions are
a great help in such situations.
| Is This Answer Correct ? | 6 Yes | 0 No |
Answer / nk
05 MY-NUM-ALPHA PIC X(9).
05 MY-NUM REDEFINES MY-NUM-ALPHA PIC S9(17) COMP-3.
MOVE 'ABCDEFGHI' to MY-NUM-ALPHA.
note that comp-3 stores 2 numbers per byte so 17 digits
takes 9 bytes (half of one byte stores the sign.) So you
could move a 19-character variable to a 9-byte field but it
will be truncated.
| Is This Answer Correct ? | 5 Yes | 5 No |
Answer / gans
NICX's statements worked for me...
Thanks NICX....
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / ram.g
Vamsi, u r wrong, you have to read the 2nd answer again...
we can't perform any numeric operations on arithmetic field
thats right for overcome that scenario only we are using
the method called redefine. when you redefine its pointing
to the same loacation only but just telling the MVS
consider the new picture clause for the new variable..one
thing is sure here which is nothing but truncation when you
try to move x(...) to comp-3 but we can perform arithmetic
operations for sure..you can try it out....
| Is This Answer Correct ? | 2 Yes | 3 No |
Answer / vamsi
First of all s9(17) comp-3 will occupy 9 bytes and X(19) has
19 bytes of memory.
When we move the text value to an comp-3 field, we will get
Soc7 error. We cannot move alpha values to numeric fields.
If the X(17) contain numeric values then we can move this
field to s(17) comp-3 field and we can move only 9 bytes
other data will be trucated.
| Is This Answer Correct ? | 4 Yes | 8 No |
what is call by value and call by reference ?
3 Answers Infosys, ITC Indian Tobacco Company,
consider the following piece of code 01 GROSS-PAY 05 BASIC-PAY PIC 9(5) 05 ALLOWENCES PIC 9(3) if BASIC-PAY has a value 1000 and ALLOWENCES has a value of 250,what will be displayed by the statement DISPLAY GROSS-PAY a.1250 b.01000250 c.01250 d.1.250
COBOL program to read the string ' BOMBAY' in reverse order as 'YABMOB'
01 ws-p pic 9(2). 01 ws-q pic 9(2) value 01. 01 ws-r pic 9(2) value 99. p.d. compute p = q + r what will be result of p ans(00) but my question is that how i got 10 on the place of 00. (truncation will ocuure on right side not left). please tell me ?
What is LENGTH in COBOL II?
What is an explicit scope terminator?
period is missing in the cobol program which error we getting
What is the size of s9(19)comp3? explain
how many bytes does s9(7)COMP-3 field occupies?
if a=b how the flow will complete??? perform test through test-exit. perform activa through activa-exit. test. if a=b then next sentence else move a to c. test-exit. exit. activa. -- -- activa-exit. exit.
I have a field with data type X(10). I want to perform arithmetic operation on this field? I tried doing it by moving the value into a numeric field. but it didn't work out. I am getting a S0C7 abend. Pls let me know if there is any way of getting this done?
what is the difference between implicit and explicit scope terminator with example?