Considere la clase de prueba 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");
}
}
Puede (conscientemente) decir que x
es igual a y
(no referencia de objeto), pero cuando ejecuta el programa, el siguiente resultado muestra:
false
true
Pregunta: ¿Cuál es la diferencia entre compareTo()
y equals()
en BigDecimal
que compareTo
puede determinar que x
es igual a y
?
PD: Veo que BigDecimal tiene un inflate()
método en equals()
método. ¿Qué hace en inflate()
realidad?
inflate()
: no es parte de la API pública porque solo manipula la representación interna y no tiene ningún efecto visible en el "exterior". Entonces, a menos que realmente desee estudiar la implementaciónBigDecimal
en profundidad, le sugiero que ignore este método.