Czy można porównywać obiekty typu BigDecimal?

1

Cześć!

Mam do Was pytanie (jak w tytule) - czy obiekty BigDecimal da się porównywać?

Dla przykładu:


BigDecimal bd1 = new BigDecimal("666666.4444");
BigDecimal bd2 = new BigDecimal("888888.2222");

if (bd1 > bd2) {
    System.out.println(bd1 + " jest większe od " + bd2);
} else {
    System.out.println(bd1 + " jest mniejsze od " + bd2);
}

Przy bd1 > bd2 wyskakuje błąd typu:

screenshot-20220221185418.png

Z góry bardzo dziękuję za odpowiedź! ;)

0

@lion137: dziękuję!

0
Agnes94 napisał(a):

Z góry bardzo dziękuję za odpowiedź! ;)

Poświęciłaś pól roku na pytania na forum - na wiedzę którą byś miała po godzinie czytania książki.
Wszystkie zagadnienia, jakie wyciągasz, są z 2-4 początkowych rozdziałów.

5

Warto też wspomnieć, że wyniki equals / compareTo w przypadku BigDecimal nie zawsze będą zbieżne:

var b1 = new BigDecimal("100");
var b2 = new BigDecimal("100").setScale(2, RoundingMode.HALF_UP);
System.out.println(b1.equals(b2));    // false
System.out.println(b1.compareTo(b2)); // 0  

1 użytkowników online, w tym zalogowanych: 0, gości: 1