2017-06-02 1 views
1

je peux comparer deux objets BigDecimal avec compareTo() méthodeBigDecimal est égal à <= and > = meilleures pratiques

BigDecimal val = new BigDecimal(10); 

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

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

Mais Comment puis-je comparer val> = et < = ???

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

Mais il est en quelque sorte Crooked

+1

'val1.compareTo (val2) <= 0' – khelwood

Répondre

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

Il semble que vous foiré les supports curvy. Il ne devrait pas compiler de cette façon. La comparaison est dans l'appel de la méthode. Dans votre cas:

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

La partie en gras est évalué en premier. Mais l'opérateur == ne fonctionnera pas pour BigDecimal et int.

Vous propably signifiait:

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