It handle's -0.0 and 0.0 well.
But log10(1000.0) returns 2.99999999996 instead of 3.0 is this acceptable?