Re: float

Thomas Weber <[email protected]>
Newsgroups gmane.linux.c-programming
Message-ID <[email protected]>
Am 11.01.2011 09:34, schrieb ratheesh k:
> On Tue, Jan 11, 2011 at 1:31 PM, Thomas Weber
> <[email protected]> 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 <[email protected]> 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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.