Fix print negative float zero

Fixes gh-2935 by directly checking for a leading '-' instead of deducing its presence from the truth of "val < 0". Signed IEEE zeros are treated like plain old zeros in comparisons.