W tym artykule omówimy podejścia do porównywania dwóch „BigDecimals” w Javie.
Co to jest „BigDecimal” w Javie?
A ' Duży dziesiętny ” w Javie zawiera 32-bitową skalę liczb całkowitych i jest używany do obsługi bardzo dużych i bardzo małych liczb zmiennoprzecinkowych. „ skala ” reprezentuje liczbę cyfr po prawej stronie przecinka dziesiętnego.
Jak porównać dwa BigDecimals w Javie?
Aby porównać dwa BigDecimals w Javie, zastosuj następujące podejście:
Przed udaniem się na podejście upewnij się, że dołączasz poniższy pakiet, aby uzyskać dostęp do „ matematyka „metody klasowe:
import java.math.* ;
Podejście 1: Porównanie dwóch dużych liczb dziesiętnych w Javie przy użyciu metody „compareTo()”.
„ porównać do() ” porównuje dwa „ Duże liczby dziesiętne ” i zwraca wynik na podstawie następujących parametrów:
Zwrócony wynik | Obliczone porównanie |
---|---|
1 | Jeśli poprzedni BigDecimal jest większy niż drugi BigDecimal. |
0 | W przypadku, gdy poprzedni BigDecimal jest równy drugiemu BigDecimal. |
-1 | Gdy poprzedni BigDecimal jest mniejszy niż drugi BigDecimal. |
Metodę tę można zastosować do porównania dwóch stworzonych „ Duży dziesiętny ” wartości i zwróć odpowiedni wynik za pomocą „ Jeśli inaczej ' oświadczenie.
Składnia
publiczny int porównać do ( Obiekt obj )
Zgodnie z tą składnią „ Obiekt obj ” odpowiada obiektowi, który należy porównać.
Przykład
Poniższy przykład wyjaśnia omawianą koncepcję:
publiczny klasa porównajwielki dziesiętny {publiczny statyczny próżnia główny ( Strunowy argumenty [ ] ) {
Duży dziesiętny wartość1, wartość2 ;
wybór1 = nowy Duży dziesiętny ( „26326.04” ) ;
wartość2 = nowy Duży dziesiętny ( „22145.20” ) ;
Jeśli ( wybór1. porównać do ( wartość2 ) == 0 ) {
System . na zewnątrz . println ( wybór1 + ' I ' + wartość2 + ' są równe' ) ;
}
w przeciwnym razie Jeśli ( wybór1. porównać do ( wartość2 ) == - 1 ) {
System . na zewnątrz . println ( wybór1 + ' jest mniej niż ' + wartość2 ) ;
}
w przeciwnym razie {
System . na zewnątrz . println ( wybór1. porównać do ( wartość2 ) ) ;
System . na zewnątrz . println ( wybór1 + ' jest większy niż ' + wartość2 ) ;
}
Zgodnie z powyższymi liniami kodu zastosuj następujące kroki:
- Przede wszystkim utwórz dwa „ Duże liczby dziesiętne ” o podanych wartościach.
- Teraz skojarz „ porównać do() ” zarówno z przypisanymi wartościami, jak i po spełnieniu warunku w „ Jeśli ”, zapisz odpowiednią wiadomość.
- Notatka: Warunki są określone na podstawie zwróconego wyniku metody, aby metoda działała poprawnie.
- Podobnie „ inaczej, jeśli ” określa drugi warunek uwzględniający zwracany typ metody, tj. „ -1 ”.
- Na koniec zrób „ w przeciwnym razie ” wchodzą w życie po spełnieniu obu powyższych warunków.
Wyjście
W powyższym wyniku zwrócony „ 1 ” wskazuje, że „ w przeciwnym razie ” instrukcja jest wywoływana.
Podejście 2: Porównanie dwóch BigDecimals w Javie przy użyciu metody „equals()”.
„ równa się() „Metoda Javy” Duży dziesiętny ” służy do porównywania BigDecimals pod kątem równości na podstawie wartości i skali. Metodę tę można zaimplementować w celu sprawdzenia, czy BigDecimals mają zróżnicowaną skalę.
Składnia
publiczny wartość logiczna równa się ( Obiekt X )W tej składni „ Obiekt x ” odpowiada obiektowi, z którym należy porównać ten BigDecimal.
Przykład
Omówmy następujący przykład:
publiczny klasa porównajduża liczba dziesiętna2 {publiczny statyczny próżnia główny ( Strunowy argumenty [ ] ) {
Duży dziesiętny wartość1, wartość2 ;
wybór1 = nowy Duży dziesiętny ( „205,0” ) ;
wartość2 = nowy Duży dziesiętny ( „205,00” ) ;
Jeśli ( wybór1. równa się ( wartość2 ) ) {
System . na zewnątrz . println ( wybór1 + ' I ' + wartość2 + ' są równe' ) ;
}
w przeciwnym razie {
System . na zewnątrz . println ( wybór1 + ' I ' + wartość2 + „nie są równe” ) ;
}
} }
Zgodnie z powyższym kodem:
- Podobnie utwórz dwa BigDecimals o różnej skali.
- Notatka: “ 0 „ nie jest równe „ 2.00 ” w porównaniu z tą metodą.
- Następnie zastosuj „ równa się() ”, aby porównać utworzone BigDecimals i zwrócić odpowiedni wynik za pomocą metody „ Jeśli inaczej ' oświadczenie.
Wyjście
W tym wyniku można zauważyć, że zarówno „ Duże liczby dziesiętne ” nie są równe ze względu na różnice w skali.
Jednak następujący wynik prowadzi do wyrównania „BigDecimals”:
W ten sposób można porównać dwa „ Duże liczby dziesiętne ” w Jawie.
Wniosek
A ' Duży dziesiętny ” w Javie zawiera 32-bitową skalę liczb całkowitych. Dwa BigDecimals w Javie można porównać, stosując „ porównać do() ', albo ' równa się() metody. Poprzednie podejście zwraca dane wyjściowe na podstawie obliczonego porównania. To drugie podejście analizuje wartości BigDecimal na podstawie określonych skal. Ten blog ma na celu porównanie dwóch „BigDecimals” w Javie.