Jak porównać dwa BigDecimals w Javie

Jak Porownac Dwa Bigdecimals W Javie



Duży dziesiętny ” w Javie zapewnia funkcje arytmetyczne, zarządzania skalą, zaokrąglania, porównywania itp. Oprócz tego umożliwia programistom radzenie sobie z dużymi i małymi liczbami całkowitymi zmiennoprzecinkowymi z wyjątkową precyzją. Pomaga to w osiągnięciu większej precyzji w stosunku do ustalonej liczby miejsc po przecinku.

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.