This week's book / license giveaways are in the JDBC and Relational Databases and Java in General forums. We're giving away four copies each of PostGIS in Action and Java Advanced Topics Training and have the authors on-line! See this thread and this one for details.

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

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.