• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Double question

 
Ah Sam
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Dear Guru,

I have a question here.
I have define a double which looks like this:

double a = 2/3;
double b = 2/3d;

When I System.out.println, I got this result
a = 0.0
b = 0.6666666666666666

Any guru there can answer me why?
Thanks in advance.
 
bart zagers
Ranch Hand
Posts: 234
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm sorry, but not a guru

double d = 2 / 3

Both 2 and 3 are integers, therefore an integer division is done which gives zero as the integer result. This result is then converted to a zero double.

double d = 2 / 3d

Here 3 is a double, therefore the 2 is converted to a double and a double division is done, which gives 0.666 as result that is assigned to the double d

(therefore for example
int i = 2 / 3 would work fine, and
int i = 2 / 3d not)
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Posts: 15441
41
Android IntelliJ IDE Java Scala Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
"myahsam", please check your private messages. You can see them by clicking My Private Messages.
 
Ah Sam
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for your clear explanation!
Appreciate it.
 
Ah Sam
Greenhorn
Posts: 3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for your clear explanation!
Appreciate it.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic