2012-04-29 2 views
4

У меня есть следующие переменные:Java Отдел ошибок

int first = 0; 
int end = 0; 

Declare в общественном классе.

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

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

end переменной на System.out.println является 527, то это first480.

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

+0

0/0 не является ни 1, ни 1,097916667 ... –

+1

К сожалению, конец и первым собираются в предыдущем, если заявлении. – Ben

+0

@OliCharlesworth: OP утверждает: 'Конечная переменная на system.out.println равна 527, firstyear - 480.' Таким образом, вычисление равно 527/480, которое равно $ 1.097916666666667'. Не уверен, где вы получили 0/0. – Nope

ответ

6

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

double diff = (double)end/first; 
+0

Отлично работает. – Ben

+0

Где галочка? – lukecampbell

+0

+1: Хорошо видно. – Nope

 Смежные вопросы

  • Нет связанных вопросов^_^