Ako porovnať dve veľké desatinné čísla v Jave

Ako Porovnat Dve Velke Desatinne Cisla V Jave



' BigDecimal ” v jazyku Java poskytuje aritmetiku, správu mierky, zaokrúhľovanie, porovnávacie funkcie atď. Okrem toho umožňuje programátorom zvládnuť veľké a malé celé čísla s pohyblivou rádovou čiarkou s výnimočnou presnosťou. Pomáha to dosiahnuť väčšiu presnosť v porovnaní s pevným počtom desatinných miest.

Tento článok sa bude zaoberať prístupmi na porovnanie dvoch „BigDecimal“ v Jave.

Čo je „BigDecimal“ v jazyku Java?

A “ BigDecimal ” v Jave obsahuje 32-bitovú celočíselnú škálu a používa sa na spracovanie veľmi veľkých a veľmi malých čísel s pohyblivou rádovou čiarkou. ' stupnica ” predstavuje počet číslic napravo od desatinnej čiarky.







Ako porovnať dve veľké desatinné čísla v Jave?

Ak chcete porovnať dve veľké desatinné čísla v jazyku Java, použite nasledujúce prístupy:



Predtým, ako sa vydáte na prístupy, nezabudnite zahrnúť nižšie uvedený balík na prístup k „ matematika “metódy triedy:



importovať java.math.* ;

Prístup 1: Porovnajte dve veľké desatinné čísla v jazyku Java pomocou metódy „compareTo()“.

' porovnať s() “metóda porovnáva tieto dve “ BigDecimals “ a vráti výsledok na základe nasledujúcich parametrov:





Vrátený výsledok Vypočítané porovnanie
1 Ak je prvé veľké desiatkové číslo väčšie ako druhé veľké desiatkové číslo.
0 V prípade, že prvé veľké desiatkové číslo sa rovná druhému veľké desiatkové číslo.
-1 Keď je prvá veľká desiatka menšia ako druhá veľká desiatka.

Túto metódu možno použiť na porovnanie dvoch vytvorených „ BigDecimal hodnoty a vráti zodpovedajúci výsledok prostredníctvom tlačidla „ ak/inak “vyhlásenie.

Syntax



verejnosti int porovnať s ( Objekt obj )

Podľa tejto syntaxe „ Objekt obj “ zodpovedá objektu, ktorý je potrebné porovnať.

Príklad

Nižšie uvedený príklad vysvetľuje diskutovaný koncept:

verejnosti trieda porovnať veľké desatinné číslo {
verejnosti statické neplatné Hlavná ( Reťazec args [ ] ) {
BigDecimal val1, val2 ;
voľba1 = Nový BigDecimal ( '26326,04' ) ;
val2 = Nový BigDecimal ( '22145,20' ) ;
ak ( voľba1. porovnať s ( val2 ) == 0 ) {
Systém . von . println ( voľba1 + ' a ' + val2 + 'sú si rovní' ) ;
}
inak ak ( voľba1. porovnať s ( val2 ) == - 1 ) {
Systém . von . println ( voľba1 + ' je menej než ' + val2 ) ;
}
inak {
Systém . von . println ( voľba1. porovnať s ( val2 ) ) ;
Systém . von . println ( voľba1 + ' je väčší ako ' + val2 ) ;
}

Podľa vyššie uvedených riadkov kódu použite nasledujúce kroky:

  • Najprv vytvorte dve „ BigDecimals “ s uvedenými hodnotami.
  • Teraz spojte „ porovnať s() ” metóda s oboma priradenými hodnotami a pri splnenej podmienke v “ ak “, zapíšte príslušnú správu.
  • Poznámka: Podmienky sú špecifikované na základe vráteného výsledku metódy, aby metóda fungovala správne.
  • Rovnako tak „ ináč Ak 'príkaz špecifikuje inú podmienku vzhľadom na typ návratu metódy, t.j. ' -1 “.
  • Nakoniec urobte „ inak “ nadobudne účinnosť za oboch vyššie uvedených nesplnených podmienok.

Výkon

Vo vyššie uvedenom výsledku sa vrátil „ 1 “ znamená, že „ inak “.

Prístup 2: Porovnajte dve veľké desatinné čísla v jazyku Java pomocou metódy „equals()“.

' rovná sa() “metóda Java” BigDecimal ” sa používa na porovnanie veľkých desatinných miest pre rovnosť na základe hodnoty a rozsahu. Táto metóda môže byť implementovaná na aplikovanie kontroly na BigDecimals, ktoré majú variáciu v ich mierke.

Syntax

verejnosti boolovská hodnota rovná sa ( Objekt X )

V tejto syntaxi „ Objekt x ” zodpovedá objektu, s ktorým je potrebné tento BigDecimal porovnať.

Príklad

Pozrime sa na nasledujúci príklad:

verejnosti trieda porovnaťbigdecimal2 {
verejnosti statické neplatné Hlavná ( Reťazec args [ ] ) {
BigDecimal val1, val2 ;
voľba1 = Nový BigDecimal ( '205,0' ) ;
val2 = Nový BigDecimal ( '205,00' ) ;
ak ( voľba1. rovná sa ( val2 ) ) {
Systém . von . println ( voľba1 + ' a ' + val2 + 'sú si rovní' ) ;
}
inak {
Systém . von . println ( voľba1 + ' a ' + val2 + 'nie sú si rovní' ) ;
}
} }

Podľa vyššie uvedeného kódu:

  • Podobne vytvorte dve veľké desatinné čísla s variáciou v mierke.
  • Poznámka: 0 “ sa nerovná “ 2.00 “ v porovnaní s touto metódou.
  • Potom použite „ rovná sa() ” metóda na porovnanie vytvorených BigDecimal a vrátenie zodpovedajúceho výsledku cez “ ak/inak “vyhlásenie.

Výkon

V tomto výsledku možno pozorovať, že obe „ BigDecimals ” nie sú rovnaké kvôli variácii v mierke.

Nasledujúci výsledok však vedie k tomu, že „BigDecimals“ sú rovnaké:

Takto môžete porovnať dve „ BigDecimals “ v jazyku Java.

Záver

A “ BigDecimal ” v Jave obsahuje 32-bitovú celočíselnú škálu. Dve BigDecimal v Jave možno porovnať použitím „ porovnať s() ', alebo ' rovná sa() “ metódy. Prvý prístup vráti výstup na základe vypočítaného porovnania. Druhý prístup analyzuje hodnoty BigDecimal na základe špecifikovaných mierok. Tento blog je zameraný na porovnanie dvoch „BigDecimal“ v jazyku Java.