aspose file tools*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes The sign of zero Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "The sign of zero" Watch "The sign of zero" New topic
Author

The sign of zero

Mafalda Alabort
Greenhorn

Joined: Mar 02, 2001
Posts: 24
Hi,
I compiled and run this code. It seems that 100.0/-0 s positive and 100.0/-0.0 is negative. So there is a negative zero for doubles but not for ints?. Is there any explanation for this?
<pre>
public class A1{
public static void main(String [] buff){
//double d = 100.0/-0.0; // outputs negative infinity
double d = 100.0/-0; // outputs positive infinity
if(d == Double.NEGATIVE_INFINITY){
System.out.println("NEGATIVE_INFINITY");
}else{
System.out.println("POSITIVE_INFINITY");
}
}
}
</pre>
Thank you very much
Bala Arul
Greenhorn

Joined: Feb 09, 2001
Posts: 29
Hi,
As an integer -0's binary representation is as same as 0, by taking 2's compliment.
B Arul.
huiying li
Ranch Hand

Joined: Feb 12, 2001
Posts: 68
You are correct and here is a quote from Java language specification.
http://java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html#9208
"Positive zero and negative zero compare equal; thus the result of the expression 0.0==-0.0 is true and the result of 0.0>-0.0 is false. But other operations can distinguish positive and negative zero; for example, 1.0/0.0 has the value positive infinity, while the value of 1.0/-0.0 is negative infinity."
You should also read the API documentation for Double class method equal().
Hope this helps.

SCJP
Mafalda Alabort
Greenhorn

Joined: Mar 02, 2001
Posts: 24
Thank you Bala and Huiying
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: The sign of zero