java - 在流中添加 MathContext

标签 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 添加到 round 中,但我不知道在哪里添加它

最佳答案

使用this乘法重载:

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

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

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

关于java - 在流中添加 MathContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53621807/

相关文章:

java - Android:使用时不显示 strings.xml 中的字符串 (R.string.id)

java - 如何使用变量将数据放入 jdbc 表中?

java - AspectJ 没有编译

jar 中的 java.lang.RuntimeException : Error scanning entry module-info. 类

java - 使用 eclipse IDE 的 selenium webdriver 中的 "Debug from step"、 "step over"、 "step into"

java - toFront() 抛出 UnsupportedOperationException

Java 8 时区转换

scala - 分配帮助 : Union between sets

java - 如何给 groovy 闭包参数一个类型

functional-programming - 函数式编程的核心概念是什么?