Вопрос по java – Ошибка деления Java

4

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

int first = 0;
int end = 0;

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

В рамках метода:

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

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

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

0/0 не является ни 1, ни 1.097916667 ... Oliver Charlesworth
@ Fran & # xE7; oisWahl: из-за того, что OP указывает, что они оба 0 ... Oliver Charlesworth
Извините, конец и первое собираются в предыдущем выражении if. user860511
@OliCharlesworth: ОП заявляет:The endyear variable on system.out.println is 527, the firstyear is 480. Таким образом, расчет равен 527/480, что равно1.097916666666667, Не уверен, откуда вы взяли 0/0. Nope
@ Fran & # xE7; oisWahl: Я прочитал весь вопрос, очевидно, вы прочитали его слишком быстро (!) - & quot;endyear& Quot; ! = & quot;end"и т. д. Во всяком случае, я не понизил. Oliver Charlesworth

Ваш Ответ

1   ответ
5

Разделив дваints даст вамint, который затем неявно преобразуется вdouble, Принеси один кdouble до деления:

double diff = (double)end / first;
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded

Похожие вопросы