|
Posted by Evert | Rooftop on 08/24/05 01:52
Jasper Bryant-Greene wrote:
>
>> Am I missing something really obvious here?
>
>
> This is an inherent problem with floating-point operations, especially
> comparison, and is not unique to PHP. Often numbers will be off by
> some miniscule amount, just enough to make them not equal.
>
> What I would do in this situation is create a function float_equals(),
> after deciding what delta is acceptable for your situation, like this:
>
> define('MAX_FLOAT_DELTA', 0.001); // Or whatever is acceptable for you
>
> function float_equals($a, $b) {
> return (abs($a - $b) <= MAX_FLOAT_DELTA);
> }
>
> Then use float_equals($x, $y) instead of $x == $y.
>
> Jasper
>
Couldn't have said it better!
Evert
[Back to original message]
|