BigDecimal 等于 <= 和 >= 最佳实践

BigDecimal equals <= and >= best practice

我可以用 compareTo() 方法比较 2 个 BigDecimal 对象

BigDecimal val = new BigDecimal(10);

val.compareTo(new BigDecimal(11)) //return -1 

val < 11 - -1
val = 11 - 0
val > 11 - 1

但是我如何比较 val >= 和 <= ???

if(val.compareTo(new BigDecimal(11) ==-1) || val.compareTo(new BigDecimal(11) ==0)) // val <= 11

但它有点歪

if(val.compareTo(new BigDecimal(11)) <= 0) //val <=11
if(val.compareTo(new BigDecimal(11)) >= 0) //val >=11

你好像搞砸了弯曲的括号。它不应该以这种方式编译。比较在方法调用中进行。在你的 if:

val.compareTo(new BigDecimal(11) ==-1)

粗体部分先评价。但是 == 运算符不适用于 BigDecimal 和 int。

你的意思可能是:

    if ( 
        val.compareTo(new BigDecimal(11)) == -1 
     || val.compareTo(new BigDecimal(11)) ==  0 
                                                )