Considérez la classe de test simple:
import java.math.BigDecimal;
/**
* @author The Elite Gentleman
*
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BigDecimal x = new BigDecimal("1");
BigDecimal y = new BigDecimal("1.00");
System.out.println(x.equals(y));
System.out.println(x.compareTo(y) == 0 ? "true": "false");
}
}
Vous pouvez (consciemment) dire que x
c'est égal à y
(pas une référence d'objet), mais lorsque vous exécutez le programme, le résultat suivant s'affiche:
false
true
Question: Quelle est la différence entre compareTo()
et equals()
dans BigDecimal
qui compareTo
peut déterminer qui x
est égal à y
?
PS: Je vois que BigDecimal a une inflate()
méthode sur la equals()
méthode. Que fait inflate()
-il réellement?
inflate()
: elle ne fait pas partie de l'API publique car elle ne manipule que la représentation interne et n'a aucun effet visible vers "l'extérieur". Donc, à moins que vous ne souhaitiez vraiment étudier la miseBigDecimal
en œuvre en profondeur, je vous suggère d'ignorer cette méthode.