Floating point computation "non-bug"

Andreas Schwab schwab@suse.de
Fri Apr 11 16:09:00 GMT 2003


Dave Elcock <dave@sias.com> writes:

|> Given that f1 is represented not as exactly 2.3, how does gcc manage to
|> turn that in to 23 when assigning to f2, but 22 when casting to int?

Because if you round (float)2.3*10 to float precision you get 23, but
rounded to double precision you get 22.99999952316284179688 which is less
than 23.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



More information about the Gcc-bugs mailing list