• Post Reply Bookmark Topic Watch Topic
  • New Topic

Weird Output !!  RSS feed

 
Fidel Edwards
Ranch Hand
Posts: 234
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Members,
I do not know why the output of the following code is unexpected ?



The Output is : Infinity while I was Expecting : Exception

Help !
 
Campbell Ritchie
Marshal
Posts: 56587
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
When you apply an arithmetic operator to two different primitive types, the "narrower" one undergoes a "widening conversion." You can read all about the different types of conversion in the Java Language Specification (look for §5.1.2, but it is by no means easy reading).

Another way to look at it is that when you try
double / int
the compiler alters it to
double / double
and double arithmetic permits division by zero.

Try it with k = 0.0 and see what happens
 
Fidel Edwards
Ranch Hand
Posts: 234
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Campbell ,
As you solved my problem in seconds.

Campbell Ritchie wrote:

Try it with k = 0.0 and see what happens


As you said i tried also the same k=0.0 this time I am getting NaN message in console.Where these messages come from ?

Campbell Ritchie wrote:
You can read all about the different types of conversion in the Java Language Specification (look for §5.1.2, but it is by no means easy reading ).


Any other short note or tutorial related to this topic will be really appreciated !
 
Campbell Ritchie
Marshal
Posts: 56587
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I can't think of a simple tutorial at the moment, but you will find descriptions of NaN etc in the Double class documentation. Look at DETAIL FIELDS and the toString method. See whether those help. NaN and infinity are regarded as mathematical values rather than computing constructs.

Then try this code snippet.
 
Fidel Edwards
Ranch Hand
Posts: 234
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Compbell,

It would be definately helpful for me !!

Thanks a lot !
 
Campbell Ritchie
Marshal
Posts: 56587
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You're welcome

And what output did you get from the == statements?
 
Max Rahder
Ranch Hand
Posts: 177
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you do an integer divide by zero, Java throws an exception. But floating point numbers have values that represent positive and negative infinity, and "not a number". In other words, you can store the "positive infinity" value in a floating point variable. Therefore, a floating point divide by zero succeeds, and the positive infinity value is stored in the variable. (And you can check for it using constants defined in class java.lang.Double.) Here's a Wikipedia article on the IEEE standard -- IEEE 754. Here's a link to the Java spec on division: Java Language Specification, Division Operator.
 
Campbell Ritchie
Marshal
Posts: 56587
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Useful links about division and IEEE754. Thank you.
 
Fidel Edwards
Ranch Hand
Posts: 234
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell Ritchie wrote:

And what output did you get from the == statements?


Sorry Campbell for late reply

In your previous post for i also tried == but got something different I could not figure it out that why i am getting

 
Campbell Ritchie
Marshal
Posts: 56587
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Back to the Java™ Language Specification where it tells you more about the strange behaviour of NaN. Again, not easy to read.
 
Fidel Edwards
Ranch Hand
Posts: 234
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Campbell Ritchie wrote:Back to the Java™ Language Specification where it tells you more about the strange behaviour of NaN. Again, not easy to read.



Again Thanks !!
 
Campbell Ritchie
Marshal
Posts: 56587
172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You're welcome
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!