http://www.perlmonks.org?node_id=626838


in reply to Equality checking for strings AND numbers

As halley indicated, an absolute Epsilon test doesn't work well for all kinds of data. What about fractional comparison? e.g,:
sub fromp { my ( $x, $y, $eps) = @_; ( abs( ($y - $x ) / ( $x || $y || return (1) ) ) < $eps ); }
$eps should be the fractional closeness e.g. 0.000000001 would invoke a fractional threshold of a billionth.

The chain of ||s ensures that either the divisor is non-zero or division is prevented by returning 1 where both are 0 (therefore equal).

__________________________________________________________________________________

^M Free your mind!

Replies are listed 'Best First'.
Re^2: Equality checking for strings AND numbers
by Anonymous Monk on Jul 16, 2007 at 23:33 UTC
    Sorry halley, I missed your post on the absolute Epsilon test. Just throwing around ideas to use and didn't realize that one was already out on the table