Ошибка разделения Java


У меня есть следующие переменные:

int first = 0;
int end = 0;

Объявить в публичном классе.

Внутри метода:

double diff = end / first;
double finaldiff = 1 - diff;

Переменная end на System.out.println является 527, first является 480.

Почему ответ для diff выходит как 1? Это должно быть 1.097916667, я думал, что использование double позволит мне вычислять в десятичных числах?

1 4

1 ответ:

Разделив два ints, вы получите int, который затем неявно преобразуется в double. Бросьте один к A double перед divison:

double diff = (double)end / first;