In Java, qual è la differenza tra equals e compareTo quando si comparano due BigDecimal?

In Java La differenza c’è ed è sostanziale. Il metodo equals effettua un confronto tra oggetti. Ad esempio:

Bigdecimal b1 = new BigDecimal(1);Bigdecimal b2 = new BigDecimal(1.00);System.out.println(b1.equals(b2));

In questo caso l’istruzione alla riga 3, stampera’ a video il valore false, cioè confrontando i due oggetti, la differenza sta nel fatto che pur essendo uguali nel valore sono diversi nella precisione o scala. Da qui si intuisce che il metodo equals confronta oggetti e non solo valori.

Il metodo compareTo confronta solo i valori di due oggetti in questo caso:

Bigdecimal b1 = new BigDecimal(1);Bigdecimal b2 = new BigDecimal(1.00);System.out.println(b1.compareTo (b2));

l’istruzione alla riga 3, stampera’ a video il valore true. Cioè sono stati comparati solo i valori numerici.

Seguimi su

Antonio Lamorgese

Amministratore di rete e programmatore. Dopo anni di esperienza nel settore, ho ideato un generatore di codice PHP Scopri di più su https://www.phpcodewizard.it.

x