当前位置: 首页 > 知识库问答 >
问题:

编译错误。从double到int的有损转换[重复]

锺离嘉茂
2023-03-14

“你好,世界”

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

“创建一个(双精度)数组来存储下面的分数。然后使用上述方法之一创建排序类。确保排序类处理双精度数组(双精度[] 数组名称;)。创建一个客户端类来调用排序类。将数组从最小到最大排序,然后打印出已排序的数组。

到目前为止,我所做的工作是创建第一个用于收集和打印结果的类,它是无错误的。我也创建了第二个类,但我有一个无法弄清楚的错误。我将这篇文章命名为我收到的错误。顺便说一句,我正在使用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 );

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

共有1个答案

萧宁
2023-03-14

Java不允许您意外地将一个< code>double赋值给一个< code>int,因为这样会丢失数据。您应该让您的方法返回一个< code>int,或者将您的返回值显式转换为一个< code>int。

 类似资料:
  • 所以我最近写了以下代码: 当我尝试使用cmd运行它时,它一直显示以下内容: 有人能帮我解释一下我犯的错误吗?

  • 目前,我正在使用链表,但是我有一个代码问题。下面的代码运行正常,但是当我试图用a添加一些节点来生成随机数时,它给了我这个错误。在为代码添加之前,运行添加,现在您可以在main中看到。也许我错过了什么。有人能帮我理解一下吗? 附言:评论部分是我试图“升级”的主要部分。

  • 问题内容: 所以我最近写了下面的代码: 但是,它一直显示: 当我尝试使用cmd运行它时。 有人可以帮助并解释我所犯的错误吗?任何帮助表示赞赏:)。谢谢! 问题答案: 当您转换到,值的精度损失。例如,当您将4.8657(double)转换为int时,int值将为4.Primitive 不存储十进制数字,因此您将丢失0.8657。 在您的情况下,0.7是一个双精度值(除非提到float-0.7f,否则

  • 我正在修改这段代码的过程中,从一个例子从我的教科书,以兼容一个双数组。代码中有几个地方我不确定如何修复错误“不兼容类型:从double到int的转换可能有损” 我确信还有其他简单的错误我还没有找到,因为我还没有机会调试和校对代码,而且我对Java和编程也很陌生。 谢谢你的帮助!

  • null 谁能解释一下作为一个初学者我该如何消除这个错误。 太感谢你了!