This week's book giveaway is in the Other Languages forum.We're giving away four copies of Functional Reactive Programming and have Stephen Blackheath and Anthony Jones on-line!See this thread for details.
Win a copy of Functional Reactive Programming this week in the Other Languages forum!

# Double question

Ah Sam
Greenhorn
Posts: 3
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?

bart zagers
Ranch Hand
Posts: 234
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: 15484
43
"myahsam", please check your private messages. You can see them by clicking My Private Messages.

Ah Sam
Greenhorn
Posts: 3