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, programmatore ed esperto di pratiche SEO. Dopo anni di esperienza nel settore, ho ideato un generatore di codice PHP Scopri di più su https://www.phpcodewizard.it.