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


in reply to Strange log behavior?

>perl -E"say sprintf '%.20g', log (1000) / log (10)" 2.9999999999999996 >perl -E"say int( log (1000) / log (10) )" 2 >perl -E"say log (1000) / log (10) % 3" 2 >perl -E"say 2 % 3" 2

Always use a tolerance when comparing floating point numbers or converting them to integers.