Thank you. I wasn't sure, but something I ran across seemed to say it
was roughly 6 significant digits. In terms of a float to char
conversion, I did say conversion meaning from a float value to an ascii
value. Casting it won't quite do the trick. But I've got it working
anyhoo. And yes I was aware of printf, I was just trying to figure out
where I need to cut things off. So once again thank you all.

On Thu, 2003-06-12 at 05:17, Mika Fischer wrote:
> Hi, Christopher!
> 
> * Christopher Egner <[EMAIL PROTECTED]> [2003-06-12 05:52]:
> > float i = 0.0f;
> > i = i + 1.0f;
> > i = i + .11f;
> > 
> > Compiling and running this code results in an i equal to
> > 0.11000001430511474609375
> 
> The float type in C is basically a so called IEEE single precision floating
> point number. These do have about 6 significant decimal digits, so your
> result is to be expected.
> (See: http://www.math.byu.edu/~schow/work/IEEEFloatingPoint.htm)
> 
> If you want more significant digits use the double (15 digits) or even
> long double (34 digits) types.
> 
> > I know this is close, but I'm trying to do a float to char conversion.
> 
> I don't quite know what you mean by "float to char conversion"...
> If you really want to convert a float to a char just do:
> 
> (char)i
> 
> which truncates the value or
> 
> (char)roundf(i)
> 
> which rounds it first.
> 
> > And I can't seem to figure out how to get an exact value from anything
> > here. Is this normal (I seem to recall it is)?
> 
> It is technically impossible to compute exactly on a computer. It's basically
> the same reason why you can't write 1/3 = 0.33333... exactly in decimal
> notation with a limited number of digits only that in the binary system stuff
> like that happens much more often :)
> 
> > And how (if I can) do I get around this?
> 
> See above.
> 
> > Thanks a lot.
> 
> HTH,
>  Mika
> 
> 
> --
> [EMAIL PROTECTED] mailing list
> 


--
[EMAIL PROTECTED] mailing list

Reply via email to