This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Fw: BUG REPORT: unexpected floating point behavior


That's not a bug.  It's just the way floating point works (or doesn't
work).  It boils down to a problem representing base10 floats with a
32bit base2 packed structure.  You need to read up on floating point and
precision.  Try google...

--Chuck

Stan Malyshev wrote:
> 
> ----- Original Message -----
> From: Stan Malyshev
> To: cygwin@cygwin.com
> Cc: Tennyson Lee
> Sent: Friday, May 25, 2001 3:40 AM
> Subject: BUG REPORT: unexpected floating point behavior
> 
> Consider the following unexpected output of a simple loop that increments a
> floating value by 0.1 at every iteration:
> 
> #include <stdio.h>
> 
> int main() {
> 
>   float x;
> 
>   for (x = 0; x < 4; x += 0.1f) {
>     printf("x=%f\n", x);
>   }
> 
>   return 0;
> }
> 
> ------------------
> 
> x=0.000000
> x=0.100000
> x=0.200000
> x=0.300000
> x=0.400000
> x=0.500000
> x=0.600000
> x=0.700000
> x=0.800000
> x=0.900000
> x=1.000000
> x=1.100000
> x=1.200000
> x=1.300000
> x=1.400000
> x=1.500000
> x=1.600000
> x=1.700000
> x=1.800000
> x=1.900000
> x=2.000000
> x=2.100000
> x=2.200000
> x=2.300000
> x=2.400000
> x=2.500000
> x=2.600000
> x=2.700000
> x=2.799999
> x=2.899999
> x=2.999999
> x=3.099999
> x=3.199999
> x=3.299999
> x=3.399999
> x=3.499999
> x=3.599999
> x=3.699999
> x=3.799999
> x=3.899998
> x=3.999998
> 
> --
> Want to unsubscribe from this list?
> Check out: http://cygwin.com/ml/#unsubscribe-simple

--
Want to unsubscribe from this list?
Check out: http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]