[英]possible lossy conversion from double to int
编写一个程序,其中包含两个重载方法,这些方法返回具有以下标头的数组的平均值:
public static int average(int[] array)
public static double average(double[] array)
我的程序包含错误
list2[i] = sc.nextDouble(); // possible lossy conversion from double to int
return average; // possible lossy conversion from double to int
不知道问题是什么,我已经在方法中声明了需要声明的内容,我不知道为什么我的双重投资会给我这个错误
import java.util.Scanner;
public class Lab7A {
public static void Main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter 10 Integer values: ");
int list[] = new int[10];
for (int i = 0; i < list.length; i++) {
list[i] = sc.nextInt();
}
double avg1 = average(list);
System.out.println("Average of First Array: " + avg1);
System.out.println();
System.out.print("Enter Ten Double Values: ");
double list2[] = new double[10];
for (double i = 0; i < list2.length; i++) {
list2[i] = sc.nextDouble();
}
double avg2 = average(list2);
System.out.println("Average of Second Array: " + avg2);
System.out.println();
}
public static int average(int[] list) {
double average = 0;
double total = 0;
for (int i = 0; i < list.length; i++) {
total = total + list[i];
}
average = total / list.length;
return average;
}
public static double average(double[] list2) {
double average = 0;
double total = 0;
for (int i = 0; i < list2.length; i++) {
total = total + list2[i];
}
average = total / list2.length;
return average;
}
}
您的average(double[])
方法尝试将double
用作数组索引,但是Java仅允许将int
用作数组索引。 这就是“可能的从双精度到整数的有损转换”的来源。
其他所有内容都是且应该为double
,但将索引d
声明为int
以消除此错误。
另外,在该方法的for
循环中,条件应为d < list2.length
而不是d < 5
。
同样, int
值的平均值可能不一定是int
。 在您的average(int[])
方法中,将其声明为返回double
,然后将average
声明为double
。 变量avg1
main
也将需要为double
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.