Java平均函数

时间:2012-04-18 04:18:05

标签: java average

我是编程新手,我正在尝试找出一个简单的平均函数。我写了一个平均3个整数的函数。现在我希望能够使用任何集合类和任何数字类并获得平均值。问题在于这些类不能使用+或/来获得平均值。

所以我想知道是否有任何解决办法可以使用这两个类?

这是我的第一个有效的功能:

package refresh;
import java.util.*;

public class Average {
public static void main( String args[]){

    int a, b, c;
    float average;
    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter First Number");
    a = scanner.nextInt();
    System.out.println("Enter Second Number");
    b = scanner.nextInt();
    System.out.println("Enter Third Number");
    c = scanner.nextInt();
    average = (float)(a+b+c)/3;
    System.out.println("The Average Is "+average );
}
 }

到目前为止我的问题是:

package refresh;
import java.util.*;

public class Average {
public static void main( String args[]){

    Collection numbers;
    Number count;
    Number  average;

    Scanner scanner = new Scanner(System.in);
    System.out.println("Enter Numbers to be averaged");
    numbers = (Collection) scanner.match();
    count++;
    average = numbers/count;
    System.out.println("The Average Is "+average);
}
}

任何帮助都会很棒!谢谢你的时间!

1 个答案:

答案 0 :(得分:2)

如果你不知道你想要将它转换成什么类型​​的数字,将String转换为数字(这是Scanner所做的)是没有意义的。

您可以将任何数字表示为Double。如果您需要任意精度,请使用BigDecimal。

平均代码可以在Number接口上完全通用;只需使用doubleValue方法。如果你需要BigDecimal,那么它会更复杂,你可能需要做涉及instanceof的事情。