编译错误。从double到int的有损转换

时间:2016-10-30 20:03:36

标签: java type-conversion

“你好世界”

这是我在网站上发表的第一篇文章,我是编程java课程的第5周。我应该提一下,我还是一个初学者。本周我的任务如下:

“创建一个(双)数组来存储以下分数。然后使用上述方法之一创建一个排序类。确保排序类处理双数组(double [] arrayName;)。创建一个客户端类来调用排序类。将分数数组传递给Sorting类。将数组从最小值排序到最大值并打印出已排序的数组。“

到目前为止我完成的工作是创建第一个收集和打印结果的类,它没有错误。我也创建了第二个类但我有一个我无法弄清楚的错误。我把这篇文章命名为我收到的错误。顺便说一句,我正在使用NetBeans(不是我最喜欢的程序)。无论如何,这是我的第二堂课的代码:

public class SortingClass {

    public static void SortingClass ( double[] array )
    {
        double[] array1 = new double[]
        {53.5, 60.3, 96.2, 53.3, 56.4, 52.7, 76.4, 77.5, 71.0, 78.2,
        65.2, 59.3, 80.5, 92.1, 85.7, 78.7, 66.2, 88.8, 50.2, 73.4};


        double temp;
        int max;

        for (int i = 0; i < array1.length - 1; i ++)
        {
            max = indexOfLargestElement ( array1, array1.length - i );

            temp = array1[max];
            array1[max] = array1[array1.length - i - 1];
            array1[array1.length - i - 1] = temp;
        }
    }

    public static double indexOfLargestElement ( double[] array1, int size)
    {
        int index = 0;
        for ( int i = 1; i < size; i++ )
        {
            if ( array1[i] > array1[index] )
                index = i;
        }
        return index;
    }
}

我收到的错误是在以下行:

max = indexOfLargestElement ( array1, array1.length - i );

要回顾的错误消息是“不兼容的类型:从double到int的可能有损转换。”

1 个答案:

答案 0 :(得分:0)

Java不允许您不小心将double分配给int,因为您将丢失数据。您应该让方法返回int,或者将您的返回值明确地转换为int