没有获得所需的返回值

时间:2019-06-11 19:02:30

标签: java eclipse

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

公共课prg21 {

    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));
}

}

我希望达到38.8,但我得到38.0

1 个答案:

答案 0 :(得分:1)

int数据类型将删除任何十进制值

您得到38.0,因为该表达式保存为int,将小数点后的位数保留为38,然后将其返回为双精度值,因此将其转换为38.0