This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Floating point woes




On Sat, 2 Jun 2001, Rafael Herrera wrote:

> Hello,
>
> I've inherited a program wich has started to crash after attempting to
> compare floating point numbers (doubles to be precise). For example, a
> construct like this:
>
>   if (a/2 > b)
>     {
> 	<..>
>     }
>
> would be true, even though the a/2 and b are equal.
>
> What is the recommended procedure to compare two doubles? If not
> recommended, is there a tool that can scan the sources and report the
> instances in which these potentially problematic constructs occur?
>
> Thank you
> --
>      Rafael
>
Its common to compare equality of floats against an epsilon distance,
because of internal rounding troubles.

if ( abs(a/2-b) > epsilon )

with epsilon in a range which fits into precision and to our experiment:

	epsilon = 1e-5 for example.

CU INGO



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]