Re: float

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 11.01.2011 09:34, schrieb ratheesh k:
> 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

Try something with precision and typecast float to double

printf("f:%.10f is 1.0 \n",(double) f);


Thomas

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


[Index of Archives]     [Linux Assembler]     [Git]     [Kernel List]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [C Programming]     [Yosemite Campsites]     [Yosemite News]     [GCC Help]

  Powered by Linux