When you are using a binary operator, both arguments should be of a same type and the result will be in their type too. When you want to divide (int)/(long)
it turns into (long)/(long)
and the result is (long)
. you shouldmake it (double)/(long)
or (int)/(double)
to get a double result. Since double is greater that int and long, int and long will be turned into double in (double)/(long)
and (int)/(double)