java中的双精度双精度打印问题

java中的双精度双精度打印问题,java,loops,Java,Loops,我对类似的任务有问题 任务如下: 这是我的代码: import java.text.DecimalFormat; import java.util.Scanner; public class MinMaxSumAverage { public static void main(String[] args) { DecimalFormat df = new DecimalFormat("#0.00"); Scanner scanner = new Sca

我对类似的任务有问题

任务如下:

这是我的代码:

import java.text.DecimalFormat;
import java.util.Scanner;
public class MinMaxSumAverage {
    public static void main(String[] args) {
        DecimalFormat df = new DecimalFormat("#0.00");
        Scanner scanner = new Scanner(System.in);
        double average;
        double sum = 0;
        double max = Integer.MIN_VALUE;
        double min = Integer.MAX_VALUE;
        double numbers = scanner.nextInt();

        for (int i = 0; i < numbers; ++i) {
           int num = scanner.nextInt();
            if (num > max) max = num;
            if (num < min) min = num;
            sum += num;
        }
        average = sum / numbers;
        System.out.println("min=" + (df.format(min)));
        System.out.println("max=" + (df.format(max)));
        System.out.println("sum=" + (df.format(sum)));
        System.out.println("avg=" + (df.format(average)));
    }
}
导入java.text.DecimalFormat;
导入java.util.Scanner;
公共类最小最大平均值{
公共静态void main(字符串[]args){
DecimalFormat df=新的DecimalFormat(#0.00”);
扫描仪=新的扫描仪(System.in);
双倍平均;
双和=0;
double max=整数.MIN_值;
双最小值=整数最大值;
双数字=scanner.nextInt();
对于(int i=0;imax)max=num;
如果(num

你能帮我找出我的代码有什么问题吗

编辑: 我将总和、最大值和最小值从double更改为int,测试结果的变化最小:

测试2:


您的代码无法接受十进制输入,这就是您接收
输入不匹配异常的原因。换行

int num = scanner.nextInt();


您的代码无法接受十进制输入。最好将nextInt更改为nextLine,然后分析每一行。非常感谢您,它正在工作:)我太瞎了……)将所有int更改为double,但仍然存在相同的问题
double num = scanner.nextDouble();