Java 未获取所需的返回值

Java 未获取所需的返回值,java,eclipse,Java,Eclipse,如果我使用double sum=0而不是int sum=0,我会得到预期的答案(38.8),但当我使用int时,我会得到38.0作为答案。我想知道为什么会发生这种情况,因为我的返回类型是double,所以我不应该自动获得精确的十进制值输出 公共类prg21 { } 我期望38.8,但我得到38.0,int数据类型将删除任何十进制值 得到38.0是因为表达式被保存为int,去掉小数并使其为38,然后它作为double返回,因此它被转换为38.0返回和/(double)ar.length。您当前所做

如果我使用
double sum=0
而不是
int sum=0
,我会得到预期的答案(38.8),但当我使用
int
时,我会得到38.0作为答案。我想知道为什么会发生这种情况,因为我的返回类型是
double
,所以我不应该自动获得精确的十进制值输出

公共类prg21 {

}


我期望38.8,但我得到38.0,int数据类型将删除任何十进制值


得到38.0是因为表达式被保存为int,去掉小数并使其为38,然后它作为double返回,因此它被转换为38.0

返回和/(double)ar.length。您当前所做的是返回按返回类型转换为double的
sum/ar.length
(圆形)的int结果。我建议您了解变量以及每个变量的作用
    public static  double average(int...ar)
{
    int sum=0;

    for(int x:ar)
    {
        sum+=x;
    }

    return sum/ar.length;
}
public static void main(String args[])
{
    int []arr= {5,77,2,65,45};
    System.out.println("Average="+average(arr));
}