BigDecimal等于< =和> =最佳做法

时间:2017-06-02 06:41:07

标签: java bigdecimal

我可以将2个BigDecimal对象与compareTo()方法

进行比较
BigDecimal val = new BigDecimal(10);

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

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

但是如何比较val&gt; =和&lt; = ???

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

但是某种程度上它是歪曲的

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

看起来你把弯曲的括号弄乱了。它不应该以这种方式编译。比较在方法调用中。在你的if:

  

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

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

你的意思是:

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