Negative-ness calculated before precision rounding.

Fixes #113

When performing precision rounding, a negative number may become
non-number (-0.1 formatted with +0 returns +0). It is important to retain
the original sign of the number for the purposes of comparisons. Therefore
move the is negative check to occur before precision rounding. The
negative sign is still stripped from the string after precision rounding.