在流中添加MathContext

时间:2018-12-04 21:38:06

标签: java java-8 functional-programming java-stream

我有一段设置BigDecimal的代码:

setTotalDogsCurrentValueInUsd(
            purchases
                .stream()
                .map(p -> p.getNumberOfDogs())
                .filter(Objects::nonNull)
                .reduce(BigDecimal.ZERO, BigDecimal::add).multiply(new BigDecimal(rate)));

我想将MathContext.DECIMAL32添加到四舍五入,但是我不知道将其精确地添加到何处

1 个答案:

答案 0 :(得分:2)

使用this乘法的重载:

.multiply(new BigDecimal(rate), MathContext.DECIMAL32)

或者如果您想在reduce通话期间应用它:

.reduce(BigDecimal.ZERO, (a, b) -> a.add(b,  MathContext.DECIMAL32))