× 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.



Scott Klement wrote:
> 
> Someone posted this question on the iSeries Network's RPG forum, and it
> stumped me, so I thought I'd bring it here and see what you guys think.
> 
> I'm running the following code.   The two numbers, VAR1 and VAR2 should
> have the same results, shouldn't they?
> 
>      d VAR2            S             30p 0
>      d VAR1            s             30p 0
> 
>      c                   eval      VAR2 = (16**15)
>      c     VAR2          dsply
> 
>      c                   eval      VAR1 = (16**14)
>      c                   eval      VAR1 = VAR1 * 16
>      c                   dsply                   VAR1
> 
>      c                   eval      *inlr = *on
> 
> The result of running this program looks like this:
> 
> DSPLY             1152921504606846980
> DSPLY             1152921504606846976
> 
> So, my question is, what's going on here?   And, why would there be a
> difference of 4?!
> 
> As far as I can tell, this only happens on V5R2.  Can anyone confirm that
> it doesn't happen on older releases?
> 

Scott:  I haven't been able to monitor this list lately since this week I've 
been downtown waiting to be selected for jury duty. But today they let us 
out a bit early. 

What's happening here? It's simple, really. The exponentiation operator 
returns a float numeric value. When you're dealing with double precision 
IEEE float numeric, you're limited to about 16 digits of precision. Any 
digits past the 16th or 17th cannot be trusted. Period. (Note in the values 
listed that the difference shows up in the 18th digit and beyond.)

Cheers! Hans



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
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.