Consideremos la sencilla clase de prueba:BigDecimal es igual a() frente compareTo()
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 (consciente) dice que x
es igual a y
(no objeto de referencia), pero cuando se 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 es x
EQUA l a y
?
PD: Veo que BigDecimal tiene un método inflate()
en el método equals()
. ¿Qué hace realmente inflate()
?
anuncio 'inflar()': no es parte de la API pública, ya que sólo manipula la representación interna y no tiene efecto visible para el "exterior". Entonces, a menos que realmente desee estudiar la implementación de 'BigDecimal' en profundidad, le sugiero que ignore este método. –
Puede encontrar una breve explicación y fragmentos de código fuente [aquí] (http://stackoverflow.com/a/39163942/4723795) – xenteros