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

接收错误:不兼容的类型:我的数组可能从Double到int的有损转换

吉凯捷
2023-03-14

我在第18行遇到了这个错误。我不知道为什么当数组grade和变量gradeNum都是double类型时,编译器要我将变量gradeNum强制转换为int类型。免责声明:此代码远未完成。我唯一的问题是这个错误与数组grade和变量gradeNum有关。

import java.util.*;

public class Lab10{

static Scanner console = new Scanner(System.in);

static String temp = "";
static double gradeNum = 0.0;
static String temp2 = "";

public static void main(String [] args) {


System.out.println("Please enter how many grades you would like to input: ");
temp = console.nextLine();
gradeNum = Double.parseDouble(temp);

double [] grade = new double [gradeNum]; 

System.out.println("Okay now please enter each individual grade: ");
temp2 = console.nextLine();


} // end of main

} // end of class Lab10

共有3个答案

法子昂
2023-03-14

您不能使用Double来指定数组大小,根据JLS第10章,只允许非负整数值,这就是编译器希望您将DoublegradeNum转换为int的原因。

数组中包含的变量没有名称;相反,它们由使用非负整数索引值的数组访问表达式引用。这些变量称为数组的组件。如果一个数组有n个分量,我们说n是数组的长度;使用从0到n-1(包括0和n-1)的整数索引引用数组的组件。

因此,您需要将代码改为:

static int gradeNum = 0;
....
gradeNum = Integer.parseInt(temp);
鲜于璞瑜
2023-03-14

您初始化数组并必须提供不能是双整数的大小。您不能创建仅包含3.6个元素3或4个的数组。

笪成周
2023-03-14

new Double[size][]中的内容是双数组的大小。不是数组的内容。

你想这么做吗?我在这里假设大小为1,但是您可能需要根据自己的需要进行调整

double [] grade = new double[1]; 
grade[1] = gradeNum;
 类似资料: