繁体   English   中英

从双精度到整数可能的有损转换

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM