ugh, that's what I was afraid of.... thank you, the info on the links you 
provided made sense.

----- Original Message ----- 
From: "Stephen Posey" <[EMAIL PROTECTED]>
To: "Delphi-Talk Discussion List" <[email protected]>
Sent: Friday, August 05, 2005 10:09 AM
Subject: Re: bad floaters in a floating point value


> Richard R wrote:
>> Hi. I am developing plugins for Caligari Truespace software.
>> The plugins are DLL's and use MFC. Primitive Itch developed a
>> Delphi wrapper, and I helped provide translations from the
>> vc++ header files. The wrapper contains exports from the
>> tsxapi.dll which the Truespace application uses for plugins.
>> Using this wrapper, I can create DLL's for the extension of
>> the Truespace application. The problem I am having is with the
>> floating point values in the type float. They are making it
>> hard to do checks. An example, I get a value from a dll
>> function that supposed to return 4.47 for a specific setting
>> in the application. Well when I read this value, it reads like
>> 4.46999999999997 and I get many similar problems like this. I
>> have tried doing variable:= StrToFloat(Format('%.2f',
>> [variable])); however it returns the same value. What can I do
>> about this? I need to check for 4.47 yet its always returning
>> false because of the inaccuracy. Thanks,
>
> There's nothing "bad" or "inaccurate" per se about the values
> you're getting; they're perfectly normal results for floating
> point operations which are inherently imprecise for many values.
>
> In general you cannot expect floating point values to compare
> exactly, so the typical approach is to check whether the values
> are "sufficiently close" to be considered equal for practical
> purposes.
>
> This is often done by subtracting one of the numbers from the
> other and seeing whether or not the result is less than or equal
> to some predetermined "closeness value", usually called "epsilon".
>
> What constitutes "sufficiently close" will depend on your
> situation and applications.
>
> Read more here:
>
> http://en.wikipedia.org/wiki/IEEE_floating-point_standard
> http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
> http://docs.hp.com/en/B3906-90005/ch02s05.html
> http://blogs.msdn.com/ericlippert/archive/2005/01/20/357407.aspx
>
>
> HTH
>
> Stephen Posey
> [EMAIL PROTECTED]
> __________________________________________________
> Delphi-Talk mailing list -> [email protected]
> http://www.elists.org/mailman/listinfo/delphi-talk
> 
__________________________________________________
Delphi-Talk mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi-talk

Reply via email to