Velocity Reviews > Java > What is "-0.0"

# What is "-0.0"

Morgan Cheng
Guest
Posts: n/a

 10-13-2007
In java 6.0, I have below code.
double x = 0.0;
double y = -10.0;
double z = x / y;
System.out.println("z = " +z);

The result is "-0.0". This is wired, why it is negative zero?

Richard Reynolds
Guest
Posts: n/a

 10-13-2007

"Morgan Cheng" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed) ps.com...
> In java 6.0, I have below code.
> double x = 0.0;
> double y = -10.0;
> double z = x / y;
> System.out.println("z = " +z);
>
> The result is "-0.0". This is wired, why it is negative zero?
>

http://en.wikipedia.org/wiki/%E2%88%920_(number)

Patricia Shanahan
Guest
Posts: n/a

 10-13-2007
Morgan Cheng wrote:
> In java 6.0, I have below code.
> double x = 0.0;
> double y = -10.0;
> double z = x / y;
> System.out.println("z = " +z);
>
> The result is "-0.0". This is wired, why it is negative zero?
>

I agree that it is weird, but there are reasons why IEEE 754 floating
point arithmetic distinguishes positive and negative zero.

A zero may be a stand-in for a number of very small absolute magnitude.
There are some algorithms where intermediate results overflow and
underflow, but the final answer is representable.

Preserving the sign on underflow, and through arithmetic using a zero,
also preserves the sign on division by the result of the underflow,
leading to the correct choice between positive and negative infinity.

Patricia

Stefan Ram
Guest
Posts: n/a

 10-13-2007
Morgan Cheng <(E-Mail Removed)> writes:
>The result is "-0.0". This is wired, why it is negative zero?

The first result for

currently is

http://en.wikipedia.org/wiki/%E2%88%920_(number)

.

Roedy Green
Guest
Posts: n/a

 10-14-2007
On Sat, 13 Oct 2007 05:06:35 -0700, Morgan Cheng
<(E-Mail Removed)> wrote, quoted or indirectly quoted someone
who said :

>
>The result is "-0.0". This is wired, why it is negative zero?

Because floating point has both a positive and negative 0, signed
magnitude, unlike ints. see http://mindprod.com/jgloss/ieee754.html
--
The Java Glossary
http://mindprod.com