如何找到二维数组中所有元素的总和?

How to find the sum of all the elements in a 2D array?

我需要找到我的二维数组中所有元素的总和,但这些元素是双精度的,它们只是作为整数添加。输出结果为 55,而本应为 59.6。非常感谢任何形式的帮助。

class Main {
    public static void main(String[] args) {
        double[][] step4 =
                {{1.1,2.2},{3.3,4.4},{5.5,6.6},{7.7,8.8},{9.9,10.10}};
        int sum = 0;
        for (int r = 0; r < step4.length; r++) {
            for (int c = 0; c < step4[r].length; c++) {
                sum += step4[r][c];
            }
        }
        System.out.println(sum);
    }
}

将 sum 变量从 int 更改为 double。因为你正在用双打做加法,最后你将它们转换为 int。

class Main {
    public static void main(String[] args) {
        double[][] step4 =
                {{1.1,2.2},{3.3,4.4},{5.5,6.6},{7.7,8.8},{9.9,10.10}};
        double sum = 0;
        for (int r = 0; r < step4.length; r++) {
            for (int c = 0; c < step4[r].length; c++) {
                sum += step4[r][c];
            }
        }
        System.out.println(sum);
    }
}

这是输出:

您可以使用 DoubleStream 来达到这个目的:

double[][] arr = {{1.1,2.2},{3.3,4.4},{5.5,6.6},{7.7,8.8},{9.9,10.10}};

double sum = Arrays.stream(arr).flatMapToDouble(Arrays::stream).sum();

System.out.println(sum); // 59.6