Fix For Low Floating-Point Numbers

There was a bug in the floating point number comparison when
values were close to zero (or actually equal to zero). The tolerance
values don't work right when one of the values is zero, or the two
numbers are both so low that percentage comparisons aren't useful.

Therefore - if the absolute value of any two numbers being compared
are each below a millionth, return that they are equal.