• Post Reply Bookmark Topic Watch Topic
  • New Topic

10/0 is equal to 10/0.0???  RSS feed

 
ritwik roy
Greenhorn
Posts: 20
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
plz look at the code
int a=10/0;
if i want to perform it then there will be a run time error. it is fine.
but in
double a=10/0.0 there will not be any run time error and the answer will be infinity. why?
please look at another problem

int x=012;
if ( x==10) { System.out.println("if part"); }
else{System.out.println("else part");}
it is printing "if part" why?
 
Alton Hernandez
Ranch Hand
Posts: 443
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by ritwik roy:
plz look at the code
int a=10/0;
if i want to perform it then there will be a run time error. it is fine.
but in
double a=10/0.0 there will not be any run time error and the answer will be infinity. why?
please look at another problem

int x=012;
if ( x==10) { System.out.println("if part"); }
else{System.out.println("else part");}
it is printing "if part" why?



A java.lang.ArithmeticException will be thrown if there is an integer division by zero. However,

- a positive float/double division by zero will result in
a POSITIVE_INFINITY

- a negative float/double division by zero will result in
a NEGATIVE_INFINITY

In you example, 10 will be promoted to float so the result is infinity.

Hope this helps...
 
Hong Anderson
Ranch Hand
Posts: 1936
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
012 (octal) is equal 10 (decimal)
Infinity is a special constant value :-
- any positive number divide 0.0 is Infinity.
- any negative number divide 0.0 is -Infinity.
- 0/0.0 is NaN
 
shyam ramineni
Ranch Hand
Posts: 43
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

int a=10/0;
if i want to perform it then there will be a run time error. it is fine.
but in
double a=10/0.0 there will not be any run time error and the answer will be infinity. why?
please look at another problem

int x=012;
if ( x==10) { System.out.println("if part"); }
else{System.out.println("else part");}
it is printing "if part" why?


In the expresion a=10/0.0 denominator is a double, So 10 is also promoted to double and the overloaded division operator for double is invoked. / operator for double returns Double.Infinity when denominator is 0.0.

interger literals that start with 0 are interpreted as octal values. So decimal equalent of 012 will be 2+8 ie 10.

integer values that start with 0x are interpreted as hexadecimal values.

Hope I have answered your queries.

Try executing a= 10/-0.0;

Thanks
Shyam Ramineni
 
ritwik roy
Greenhorn
Posts: 20
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
thanks u all.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!