Java除法错误

Java除法错误,java,division,integer-division,Java,Division,Integer Division,我有以下变量: int first = 0; int end = 0; 在公共类中声明 在方法中: double diff = end / first; double finaldiff = 1 - diff; System.out.println上的end变量是527,第一个变量是480 为什么diff的答案是1?它应该是1.097916667,我想使用double可以让我计算成小数?除以两个ints会得到int,然后隐式转换成double。在除数之前,将一个转换为一个double: do

我有以下变量:

int first = 0;
int end = 0;
在公共类中声明

在方法中:

double diff = end / first;
double finaldiff = 1 - diff;
System.out.println上的
end
变量是
527
,第一个
变量是
480


为什么diff的答案是
1
?它应该是
1.097916667
,我想使用
double
可以让我计算成小数?

除以两个
int
s会得到
int
,然后隐式转换成
double
。在除数之前,将一个转换为一个
double

double diff = (double)end / first;

0/0既不是1也不是1.097916667…很抱歉,结束和第一个是在前一个if语句中收集的。@OliCharlesworth:OP声明:
system.out.println上的endyear变量是527,第一年是480。
因此,计算结果是527/480,deos等于
1.097916667
。不知道你从哪里得到了0/0。@FrançoisWahl:因为OP指定它们都是0…@FrançoisWahl:我确实读了整个问题,显然你读得太快了(!)-“
年终
”!=“
结束
”等等。无论如何,我没有投反对票。我不得不在lukecampbell等了十分钟,每个人在做正确的答案时也是如此。