in reply to Re^7: number comparison with a twist
in thread number comparison with a twist

This boils down to two alternatives to compare two numeric scalars with a minimal* rounding tolerance

DB<65> $num1 = '0019.90'; $num2 = '019.9' DB<66> p $num1+0 eq $num2+0 1 DB<67> p "$num1" == "$num2" 1 DB<68>

Not sure which one is technically better.

I find the second one more readable and easier to explain.

edit

Well there are edge cases when the scalar is not purely numeric... but that's too complicated.

update

FWIW: the eq form can be further simplified with a unary +:

DB<109> printf "%.20f\n",$_ for $a,$b 2547200.00000000000000000000 2547199.99999999950000000000 DB<110> p +$a eq +$b # unary + 1 + DB<111> p $a == $b # doesn't work DB<112> p "$a" == "$b" # preferred variant 1

Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery

*) should be noted that this can't help fixing accumulated rounding errors.