aspose file tools*
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Double.Nan question.plz help 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 "Double.Nan question.plz help" Watch "Double.Nan question.plz help" New topic
Author

Double.Nan question.plz help

bnkiran kumar
Ranch Hand

Joined: Mar 02, 2006
Posts: 176
The following code will print

1: Double a = new Double(Double.NaN);
2: Double b = new Double(Double.NaN);
3:
4: if( Double.NaN == Double.NaN )
5: System.out.println("True");
6: else
7: System.out.println("False");
8:
9: if( a.equals(b) )
10: System.out.println("True");
11: else
12: System.out.println("False");

A) True
True

B) True
False

C) False
True

D) False
False
c is the answer, plz anyone answer.


Kiran Kumar.
Edisandro Bessa
Ranch Hand

Joined: Jan 19, 2006
Posts: 584
Hi All,

I am getting prepared to write SCJP5 exam. Should I worry about Nan use for the exam or it's only for SCJP 1.4 ?


"If someone asks you to do something you don't know how to, don't tell I don't know, tell I can learn instead." - Myself
mambe nanje
Ranch Hand

Joined: Feb 22, 2006
Posts: 31
well Double.NAN is not actually defined any where as a precise value, so any test about it will never be true


Da Clone in programming world
Tilo Hemp
Ranch Hand

Joined: Nov 21, 2005
Posts: 91
interestingly,
Double.NaN != Double.NaN
gives true!
marc weber
Sheriff

Joined: Aug 31, 2004
Posts: 11343

Here's what I had in my own notes regarding NaN...

NaN is non-ordinal, so relational comparisons involving NaN always result in false. The only exception is NaN != NaN, which returns true. Wrapper methods Float.isNaN(float) and Double.isNaN(double) can be used to test for NaN. Alternatively, a float or double is NaN if it is not equal to itself (e.g., x != x).

Furthermore...
  • Math.round(Float.NaN) results in an int zero, and Math.round(Double.NaN) results in a long zero.
  • String literals "NaN" and "Infinity" are acceptable for Float and Double constructors.
  • float or double division by zero results in +/- Infinity; except dividing zero by zero, which results in NaN.


  • "We're kind of on the level of crossword puzzle writers... And no one ever goes to them and gives them an award." ~Joe Strummer
    sscce.org
    Tilo Hemp
    Ranch Hand

    Joined: Nov 21, 2005
    Posts: 91
    Hi Marc,

    thanks a lot for the interesting information!

    I've got one remark and one question:

    NaN is non-ordinal, so relational comparisons involving NaN always result in false. The only exception is NaN != NaN, which returns true.


    --> the exception is not limited to NaN != NaN, but can also applied to say Double.NaN != 12.34, which also gives true. I guess != simply inverts the output of ==.

    And my question is: what does "Cuius rei demonstrationem mirabilem sane detexi hanc marginis exiguitas non caperet." mean? I tried to find an automated latin-translator, but this did not work out

    Regards
    marc weber
    Sheriff

    Joined: Aug 31, 2004
    Posts: 11343

    Originally posted by Tilo Hemp:
    ...--> the exception is not limited to NaN != NaN, but can also applied to say Double.NaN != 12.34, which also gives true. I guess != simply inverts the output of ==...

    You're correct! I guess it would be more accurate to say something like, "the exception is in applying the != comparison to NaN, which returns true -- even when comparing two NaNs."

    As for the quote, see Fermat's Last Theorem (and note the enigmatic quality that made Fermat's words so intriguing in the first place ).
    Bert Bates
    author
    Sheriff

    Joined: Oct 14, 2002
    Posts: 8813
        
        5
    And to answer an earlier question, this topic is on the 1.4 exam, but NOT the 1.5 exam.


    Spot false dilemmas now, ask me how!
    (If you're not on the edge, you're taking up too much room.)
    Tilo Hemp
    Ranch Hand

    Joined: Nov 21, 2005
    Posts: 91
    thanks a lot marc, this is quite funny!
    especially, putting this quotation in a small margin under short and to-the-point statements
    bnkiran kumar
    Ranch Hand

    Joined: Mar 02, 2006
    Posts: 176
    marc weber ,thank you for your valuable material.
     
    I agree. Here's the link: http://aspose.com/file-tools
     
    subject: Double.Nan question.plz help