在对这张地图求和之前,如何将双精度值转换为正数。换句话说,在获得总数之前试图获得绝对值的总和。
Map<String,Double> map = new HashMap<>();
map.put("CAT",-9.3);
map.put("BYTE", 15.6);
map.put("JOB", -11.66);
map.put("VIS", 8.0);
double TotalAbs = map.values().stream()
.mapToDouble(w -> w)
.sum();
Run Code Online (Sandbox Code Playgroud)
试图对双打的绝对值求和 ==> 答案应该是 44.56 而不是 2.64。
请帮忙。谢谢。
你可以试试Math.abs。它会将负数转换为正数。
double totalAbs = map.values().stream()
.mapToDouble(w -> Math.abs(w))
.sum();
Run Code Online (Sandbox Code Playgroud)