Java 如何在lambda表达式中将scale设置为BigDecimal

Java 如何在lambda表达式中将scale设置为BigDecimal,java,Java,我有这个密码 return Optional.ofNullable(value) .map(String::valueOf) .map(BigDecimal::new) .orElse(null); 如何将setScale2、RoundingMode.天花板添加到此表达式中?您可以展开映射 return Optional.ofNullable(value) .map(v -> new

我有这个密码

return Optional.ofNullable(value)
               .map(String::valueOf)
               .map(BigDecimal::new)
               .orElse(null);

如何将setScale2、RoundingMode.天花板添加到此表达式中?

您可以展开映射

return Optional.ofNullable(value)
        .map(v -> new BigDecimal(v).setScale(2, RoundingMode.CEILING))
        .orElse(null);

可以展开映射

return Optional.ofNullable(value)
        .map(v -> new BigDecimal(v).setScale(2, RoundingMode.CEILING))
        .orElse(null);

.mapb->b.setScale2,ofElse之前的RoundingMode.天花?.mapb->b.setScale2,ofElse之前的RoundingMode.天花?v应为值还是反之?v是该映射步骤中变量的名称。你可以自由地choose@GorillAndee在这种情况下,除了value之外,其他都是自由的,因为该标识符已经被使用了。v应该是value,反之亦然?v是映射步骤中变量的名称。你可以自由地choose@GorillAndee在这种情况下,除了值之外,其他都是自由的,因为该标识符已经被使用了