Fixes #231 - adds better handling of zero values.

Previously 0.0 + unit and -0 was handled incorrectly.