× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: Edit code/word to show only so many decimals?
  • From: Mel Rothman <melrothman@xxxxxxxx>
  • Date: Fri, 08 Sep 2000 12:07:52 -0500

Brad, here's a test program containing a subprocedure that does what I think you
want.  Use debug to view the value of string after each call to makestring.

I hope it helps.

Mel Rothman


D  makestring     pr            15    varying                 
D    number                      9  4 value                   
                                                              
Dstring           s             15    varying                 
C                   eval      string =  makestring(1234.5678) 
C                   eval      string =  makestring(1234.5670) 
C                   eval      string =  makestring(1234.5600) 
C                   eval      string =  makestring(1234.5000) 
C                   eval      string =  makestring(1234.0000) 
C                   eval      string =  makestring(-1234.5678)
C                   eval      string =  makestring(-1234.5670)
C                   eval      string =  makestring(-1234.5600)
C                   eval      string =  makestring(-1234.5000)
C                   eval      string =  makestring(-1234.0000)
C                   eval      *inlr = *on                     
                                                              
P makestring      b                                           
D  makestring     pi            15    varying                 
D    number                      9  4 value                            
D i               s             10i 0                                  
D j               s             10i 0                                  
D l               s             10i 0                                  
D c               s              1                                     
D sign            s              1                                     
D string          s             15    varying                          
C                   eval      string=%trim(%editc(number:'J'))         
C                   eval      j = %scan('.':string) + 3                
C                   eval      l = %len(string)                         
C                   for       i = l downto j                           
C                   eval      c = %subst(string:i:1)                   
C                   select                                             
C                   when      c = '-'                                  
C                   eval      sign = '-'                               
C                   eval      %len(string) = %len(string) - 1          
C                   when      %scan(%subst(string:i:1):'123456789') > 0
C                   leave                                              
C                   other                                              
C                   eval      %len(string) = %len(string) - 1
C                   endsl                                    
C                   endfor                                   
C                   eval      string = %trimr(string + sign) 
C                   return    string                         
P makestring      e                                    

      
"Stone, Brad V (TC)" wrote:
> 
> It's for web developement... display only purposes.  We have some companies
> that store a unit price to 4 decimals, others at 3, and others at 2.
> 
> I wanted to make one field with 4 decimals, but then for those who only use
> 2 decimals if it always showed 4, and the last two were always 00, they
> would not like it.
> 
> So, I may be stuck making 3 different fields.  No biggie, and it may
> actually work better since those that use 4 decimals, it would not line up
> numbers nice if some of their unit prices didn't use all 4, for example..
> 
> ItemA    1.0012
> ItemB     1.111
> ItemC      1.00
> 
> Brad
> 
> > -----Original Message-----
> > From: Joep Beckeringh [mailto:joep@beckeringh.myweb.nl]
> > Sent: Thursday, September 07, 2000 5:10 PM
> > To: RPG400-L@midrange.com
> > Subject: Re: Edit code/word to show only so many decimals?
> >
> >
> > Hi Bradley,
> >
> > I'm kind of curious why you would want that.  Because our
> > software has to
> > deal with numbers with specified precision, I have routines
> > that check,
> > adjust and edit numbers to a specified number of decimals.  I
> > can mail those
> > if you like, but I assume you'd hack one yourself before the
> > mail arrives
> > :-)
> >
> > Joep Beckeringh
> >
> >
> > ----- Original Message -----
> > From: "Stone, Brad V (TC)" <bvstone@taylorcorp.com>
> > To: <RPG400-L@midrange.com>
> > Sent: Thursday, September 07, 2000 11:03 PM
> > Subject: Edit code/word to show only so many decimals?
> >
> >
> > > Hi yall...
> > >
> > > Let's say I have a field that is 9,4.
> > >
> > > Is there a way to say "Only show the first two decimal
> > places, but, if
> > there
> > > is anything but zero in 3 or 4, show them as well.."
> > >
> > > So:
> > > 1.1100 = 1.11
> > > 1.1110 = 1.111
> > > 1.1101 = 1.1101
> > > 1.00 = 1.00
> > >
> > > Make sense?
> > >
> > > Brad
> >
> >
> >
+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.