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
)
我可以用 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
)