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 ints 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