Bloehdian has asked for the wisdom of the Perl Monks concerning the following question:
Hello folks,
surprisingly to me the following string comparison of two numbers in different format (scientific, decimal) works as if not the operator "eq" but "==" would have been used for the comparsion, i.e., the variables $a and $b are compared numerically.
I would have expected that the numbers would have been converted to strings (due to the eq-operator) and that the result would be "Numbers are not equal!".
So, why does "eq" work like this and can I rely on this in general, i.e., would two numbers always numerically oompared by "eq" (e.g., it works for the two numbers 1000000 and 1_000_000 in the same manner).
perl -e '$a = 1e-3; $b = 0.001; if ( $a eq $b ) { print "Numbers are e +qual!\n" } else { print "Numbers are not equal!\n" }' Numbers are equal!
THX for any epiphany by You monks!
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Why does this string comparison compares "numerically" and can I rely on this in general?
by hippo (Archbishop) on Apr 30, 2018 at 08:57 UTC | |
by swl (Prior) on Apr 30, 2018 at 09:50 UTC | |
|
Re: Why does this string comparison compares "numerically" and can I rely on this in general?
by haukex (Archbishop) on Apr 30, 2018 at 11:51 UTC | |
|
Re: Why does this string comparison compares "numerically" and can I rely on this in general?
by syphilis (Archbishop) on Apr 30, 2018 at 11:30 UTC |