Hmmm... Reading your post, I wondered if it wouldn't be good to have a module that overloads this operators applying such tolerance... I took a look on CPAN and couldn't found such module.
Update: Math::BigFloat seems to do someting like that...
like...
use FloatingPoint::Helper -tolerance => 0.0001;
# Ok, not a good module name...
my $a = FloatingPoint::Helper->float(12e-4);
my $b = FloatingPoint::Helepr->float(1.2e-3);
if ($a > $b) {
print "really greater...\n";
} elsif ($a < $b) {
print "really lesser...\n";
} else {
print "almost equal...\n";
}
It would be possibly interesting to have different tolerances for different numbers, but I don't know what to do if two numbers with different tolerances are compared, or worse, if you sum them... Maybe using the tolerance of the leftest operand... I Don't know...
|