fixed -0.0 and +0.0 bug