Jeb - 9 months ago 39

Java Question

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`

`true`

`fl == 0`

`-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

Source (Stackoverflow)