On Tue, Jan 11, 2011 at 1:31 PM, Thomas Weber <thomas.weber.linux@xxxxxxxxxxxxxx> wrote: > Okay, now I got it. > > Look for IEEE754. > > 0.1 is in double precision 0.10000000149011612 > > Thomas > Is it possible to print the correct "printf" statement by typecasting some of operations or data types. I tried with no success. -Ratheesh > Am 11.01.2011 08:55, schrieb Uriel Corfa: >> I'd say : rounding errors. Floating point goes in mysterious ways. >> >> On Tue, Jan 11, 2011 at 8:38 AM, ratheesh k <ratheesh.ksz@xxxxxxxxx> wrote: >>> I could not understand why it getting printed like this. Could any >>> body tell me. >>> >>> #include <stdio.h> >>> >>> int main() >>> { >>> float f=0.0f; >>> int i; >>> >>> for(i=0;i<10;i++) >>> f = f + 0.1f; >>> >>> if(f == 1.0f) >>> printf("f is 1.0 \n"); >>> else >>> printf("f is NOT 1.0\n"); >>> >>> return 0; >>> } >> > -- To unsubscribe from this list: send the line "unsubscribe linux-c-programming" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html