this prints true and my understanding is that 0 is neither negative nor positive.
This is not completely true. The IEEE floating point spec defines a positive zero and a negative zero. So, a zero can be positive or negative.
They are equal because the specification defines that a positive zero is equal to a negative zero.
But you can tell them apart... For example, the inverse of positive zero is infinity, while the inverse of negative zero is negative infinity.
Henry