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

how to get only the decimal part from a variable


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

New User


Joined: 08 Sep 2006
Posts: 7
Location: Bangalore

PostPosted: Thu Sep 14, 2006 11:44 am
Reply with quote

hi friends,

how to get only the decimal part from a variable

if i have
77 var1 pic 9(4)v99 value 123422.

from this variable i need to extract only decimal part i.e. 22.
can anybody suggest me.
eagerly waiting,
vivek
Back to top
View user's profile Send private message
guptae

Moderator


Joined: 14 Oct 2005
Posts: 1208
Location: Bangalore,India

PostPosted: Thu Sep 14, 2006 12:07 pm
Reply with quote

Hi vivek,

Do u want it thru COBOL program or by using Sort utility
Back to top
View user's profile Send private message
bijjaragi
Warnings : 2

New User


Joined: 08 Sep 2006
Posts: 7
Location: Bangalore

PostPosted: Thu Sep 14, 2006 12:43 pm
Reply with quote

hi guptae,
I am asking in cobol only.
thanks in advance.
Back to top
View user's profile Send private message
guptae

Moderator


Joined: 14 Oct 2005
Posts: 1208
Location: Bangalore,India

PostPosted: Thu Sep 14, 2006 12:53 pm
Reply with quote

Hi Bijjarangi,

Code:
 10 VAR2.
     15 VAR2-A                PIC 9(4).
     15 VAR2-B                PIC 9(2).


MOVR VAR1 TO VAR2.
DISPLAY 'DECIMAL:' VAR2-B

Hope it will helpful
Back to top
View user's profile Send private message
kgumraj

Active User


Joined: 01 May 2006
Posts: 151
Location: Hyderabad

PostPosted: Thu Sep 14, 2006 8:44 pm
Reply with quote

To get only decimal's you can you

MOVE VAR1(5:2) TO VAR2.
Back to top
View user's profile Send private message
DavidatK

Active Member


Joined: 22 Nov 2005
Posts: 700
Location: Troy, Michigan USA

PostPosted: Fri Sep 15, 2006 4:40 am
Reply with quote

Vivek,

Here?s a few more ways that you will find a little more flexible.

Code:

WORKING-STORAGE SECTION.                         
                                                 
77 VAR1       PIC 9(4)V99 VALUE 1234.22.         
77 VAR2       PIC 9(4)    VALUE 0.               
77 VAR3       PIC V9(2)   VALUE 0.               
                                                 
LINKAGE SECTION.                                 
                                                 
PROCEDURE DIVISION.                               
                                                 
PROGRAM-START. 

            DISPLAY ' '.                                       
            DISPLAY 'MOVE'.                                   
            DISPLAY 'BEFORE ' VAR1 ' ' VAR2 ' ' VAR3.   
       
    MOVE VAR1          TO VAR2.                       
    COMPUTE VAR3 = VAR1 - VAR2.                       

            DISPLAY 'AFTER  ' VAR1 ' ' VAR2 ' ' VAR3.         
                                                       
            MOVE 0    TO VAR2 VAR3.                           
                                                       
            DISPLAY ' '.                                       
            DISPLAY 'FUNCTION INTEGER-PART'.                   
            DISPLAY 'BEFORE ' VAR1 ' ' VAR2 ' ' VAR3.         

    COMPUTE VAR3 = VAR1 - FUNCTION INTEGER-PART(VAR1).

            DISPLAY 'AFTER  ' VAR1 ' ' VAR2 ' ' VAR3.         
                                                       
                                                 
            MOVE 0    TO VAR2 VAR3.                       
                                                 
            DISPLAY ' '.                                 
            DISPLAY 'DIVIDE'.                             
            DISPLAY 'BEFORE ' VAR1 ' ' VAR2 ' ' VAR3.     

    DIVIDE VAR1 BY 1 GIVING VAR2 REMAINDER VAR3. 

            DISPLAY 'AFTER  ' VAR1 ' ' VAR2 ' ' VAR3.     
                                                 
    GOBACK.                                       


Display results:

Code:

.SARPAGE 4                   
.                             
.                             
.MOVE                         
.BEFORE 123422 0000 00       
.AFTER  123422 1234 22       
.                             
.FUNCTION INTEGER-PART       
.BEFORE 123422 0000 00       
.AFTER  123422 0000 22       
.                             
.DIVIDE                       
.BEFORE 123422 0000 00       
.AFTER  123422 1234 22       
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 Variable Output file name DFSORT/ICETOOL 8
No new posts Need Help with Packed Decimal Signs DFSORT/ICETOOL 4
No new posts Moving Or setting POINTER to another ... COBOL Programming 2
No new posts parsing variable length/position data... DFSORT/ICETOOL 5
Search our Forums:

Back to Top