avgSpeedList.forEach(v -> { BigDecimal avgSpeed1 = new BigDecimal(v.getAvgSpeed()).setScale(6, BigDecimal.ROUND_HALF_UP); v.setAvgSpeed(avgSpeed1.subtract(avgSpeed1).setScale(6, BigDecimal.ROUND_HALF_UP).floatValue()); }); 为什么最终结果为0.0
时间: 2024-04-02 10:32:59 浏览: 47
vue.js指令v-for使用及索引获取
根据代码逻辑,该段代码对 `avgSpeedList` 中的每个元素执行以下操作:
1. 获取元素的 `avgSpeed` 属性值,并用 `setScale` 方法设置精度为 6 位小数(四舍五入);
2. 根据获取到的精度为 6 位小数的 `avgSpeed` 属性值,用 `subtract` 方法减去其自身,结果仍然是精度为 6 位小数的值;
3. 再次使用 `setScale` 方法设置精度为 6 位小数(四舍五入),并将其转换为 `float` 类型,最终赋值给元素的 `avgSpeed` 属性。
由于步骤 2 中减去自身,相当于计算出了 0,所以最终的结果都是 0.0。因此,无论 `avgSpeedList` 中的元素的 `avgSpeed` 属性值为多少,经过该段代码处理后都会变为 0.0。
阅读全文