Jeb Jeb - 2 months ago 12
Java Question

How can a primitive float value be -0.0? What does that mean?

How come a primitive float value can be -0.0? What does that mean?

Can I cancel that feature?

When I have:

float fl;


Then
fl == -0.0
returns
true
and so does
fl == 0
. But when I print it, it prints
-0.0
.

Answer

Because Java uses the IEEE Standard for Floating-Point Arithmetic (IEEE 754) which defines -0.0 and when it should be used.

You can get around the problem by adding 0.0

e.g.

Double.toString(value + 0.0);

See: Java Floating-Point Number Intricacies

Operations Involving Negative Zero
...
(-0.0) + 0.0 -> 0.0