2

我是编程新手,我正在尝试找出一个简单的平均函数。我写了一个函数来平均 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);
}
}

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

4

1 回答 1

2

It makes no sense to convert a String into a number (which is what Scanner does) if you don't know what kind of number you're trying to convert it into.

You can represent pretty much any number as a Double. If you need arbitrary precision, use BigDecimal.

The averaging code can be fully generic over the Number interface; just use the doubleValue method. If you need BigDecimal, then it's more complicated and you probably need to do things involving instanceof.

于 2012-04-18T04:28:04.153 回答