我需要找到我的 2D 数组中所有元素的总和,但这些元素是双精度的,并且它们仅作为整数添加。当它应该作为 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);
}
}
答案 0 :(得分:2)
将 sum 变量从 int 更改为 double。因为您正在对双精度进行加法运算,最后您将它们转换为 int。
答案 1 :(得分:0)
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);
}
}
输出如下:
答案 2 :(得分:0)
您可以将 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