Here's an example:
Double d = (1/3);
System.out.println(d);
This returns 0, not 0.33333... as it should.
Does anyone know?
Here's an example:
Double d = (1/3);
System.out.println(d);
This returns 0, not 0.33333... as it should.
Does anyone know?
That's because 1
and 3
are treated as integers
when you don't specify otherwise, so 1/3
evaluates to the integer
0
which is then cast to the double
0
. To fix it, try (1.0/3)
, or maybe 1D/3
to explicitly state that you're dealing with double values.
Wow, thank you!
But how about if i have:
double d = (height/imageHeight)*imageWidth;
What would I use on that? Double.valueOf() or something else?
If you have int
s that you want to divide using floating-point division, you'll have to cast the int
to a double
:
double d = (double)intValue1 / (double)intValue2
(Actually, only casting intValue2
should be enough to have the intValue1
be casted to double
automatically, I believe.)
Use double and not Double unless you need to use these values in the object sense. Be aware about the Autoboxing concepts