Dividing two integers in Java gives me 0 or 100?
Try this:
int x = a * 100 / b;
The idea is, you are first doing a / b
, and because it's an integer operation, it'll round the result to 0
. Doing a * 100
first should fix it.
Integer division has no fractions, so 500 / 1000 = 0.5 (that is no integer!) which gets truncated to integer 0. You probably want
int x = a * 100 / b;
This sounds like you are not correctly typing your variables; two integer divisions result in an integer, not a float or double. For example:
(int)3 / (int)5 = 0
(float)3 / (float)5 = 0.6
What you could do is force it to divide a
and b
as doubles thus:
int x = (int) (((double) a / (double) b) * 100);