in reply to Re^7: number comparison with a twist
in thread number comparison with a twist
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.
Well there are edge cases when the scalar is not purely numeric... but that's too complicated.
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.
|
|---|