Hvordan sammenligne to store desimaler i Java

Hvordan Sammenligne To Store Desimaler I Java



« BigDesimal ” klasse i Java gir aritmetikk, skalastyring, avrunding, sammenligningsfunksjoner osv. I tillegg til det gjør det programmerere i stand til å takle store og små flytende-komma-heltall med eksepsjonell presisjon. Dette bidrar til å oppnå mer presisjon over det faste antallet desimaler.

Denne artikkelen vil utdype tilnærmingene for å sammenligne to 'BigDecimals' i Java.

Hva er 'BigDecimal' i Java?

en ' BigDesimal ” i Java består av en 32-bits heltallsskala og brukes til å håndtere svært store og svært små flyttall. « skala ” representerer antall sifre til høyre for desimaltegnet.







Hvordan sammenligne to store desimaler i Java?

For å sammenligne to store desimaler i Java, bruk følgende tilnærminger:



Før du går til tilnærmingene, sørg for å inkludere pakken nedenfor for å få tilgang til ' matte ' klassemetoder:



import java.math.* ;

Tilnærming 1: Sammenlign to store desimaler i Java ved å bruke 'compareTo()'-metoden

« sammenligne med() '-metoden sammenligner de to ' Store desimaler ' og returnerer resultatet basert på følgende parametere:





Returnert utfall Beregnet sammenligning
1 Hvis førstnevnte BigDecimal er større enn sistnevnte BigDecimal.
0 I tilfelle at den tidligere BigDecimal er lik den siste BigDecimal.
-1 Når førstnevnte BigDecimal er mindre enn sistnevnte BigDecimal.

Denne metoden kan brukes til å sammenligne de to opprettede ' BigDesimal ' verdier og returnerer det tilsvarende resultatet via ' hvis/annet ' uttalelse.

Syntaks



offentlig int sammenligne med ( Gjenstand obj )

I henhold til denne syntaksen, ' Objekt obj ” tilsvarer objektet som skal sammenlignes.

Eksempel

Eksempelet nedenfor forklarer det diskuterte konseptet:

offentlig klasse sammenlign store desimaler {
offentlig statisk tomrom hoved- ( String args [ ] ) {
BigDesimal val1, val2 ;
valg 1 = ny BigDesimal ( '26326.04' ) ;
val2 = ny BigDesimal ( '22145.20' ) ;
hvis ( valg 1. sammenligne med ( val2 ) == 0 ) {
System . ute . println ( valg 1 + 'og' + val2 + ' er like' ) ;
}
ellers hvis ( valg 1. sammenligne med ( val2 ) == - 1 ) {
System . ute . println ( valg 1 + ' er mindre enn ' + val2 ) ;
}
ellers {
System . ute . println ( valg 1. sammenligne med ( val2 ) ) ;
System . ute . println ( valg 1 + ' er større enn ' + val2 ) ;
}

I henhold til kodelinjene ovenfor, bruk følgende trinn:

  • Først av alt, lag to ' Store desimaler har de angitte verdiene.
  • Tilknytt nå ' sammenligne med() '-metoden med både de tilordnede verdiene, og på den oppfylte betingelsen i ' hvis ”-setning, logg den tilsvarende meldingen.
  • Merk: Betingelsene er spesifisert basert på metodens returnerte resultat for å få metoden til å fungere skikkelig.
  • På samme måte er ' eller hvis '-setningen spesifiserer den andre betingelsen med tanke på metodens returtype, dvs. ' -1 '.
  • Til slutt gjør du ' ellers ”-erklæringen trer i kraft på begge de ovennevnte uoppfylte betingelsene.

Produksjon

I resultatet ovenfor, returnerte ' 1 ' indikerer at ' ellers ” uttalelse påberopes.

Tilnærming 2: Sammenlign to store desimaler i Java ved å bruke 'equals()'-metoden

« er lik() 'metoden til Java' BigDesimal ”-klassen brukes til å sammenligne BigDecimals for likhet basert på verdi og skala. Denne metoden kan implementeres for å bruke en kontroll på BigDecimals som har en variasjon i deres skala.

Syntaks

offentlig boolsk er lik ( Gjenstand x )

I denne syntaksen ' Objekt x ” tilsvarer objektet som denne BigDecimalen må sammenlignes med.

Eksempel

La oss se på følgende eksempel:

offentlig klasse sammenlign stordesimal2 {
offentlig statisk tomrom hoved- ( String args [ ] ) {
BigDesimal val1, val2 ;
valg 1 = ny BigDesimal ( '205.0' ) ;
val2 = ny BigDesimal ( '205.00' ) ;
hvis ( valg 1. er lik ( val2 ) ) {
System . ute . println ( valg 1 + 'og' + val2 + ' er like' ) ;
}
ellers {
System . ute . println ( valg 1 + 'og' + val2 + 'er ikke like' ) ;
}
} }

I henhold til koden ovenfor:

  • På samme måte lager du to store desimaler med variasjon i skalaen.
  • Merk: ' 0 ' er ikke lik ' 2.00 ” sammenlignet med denne metoden.
  • Etter det bruker du ' er lik() '-metoden for å sammenligne de opprettede BigDecimals og returnere det tilsvarende resultatet via ' hvis/annet ' uttalelse.

Produksjon

I dette resultatet kan det observeres at både ' Store desimaler ” er ikke like på grunn av variasjon i skala.

Imidlertid fører følgende utfall til å gjøre 'BigDecimals' like:

Slik kan du sammenligne to ' Store desimaler ' i Java.

Konklusjon

en ' BigDesimal ” i Java består av en 32-bits heltallsskala. De to store desimalene i Java kan sammenlignes ved å bruke ' sammenligne med() ', eller ' er lik() 'metoder. Den tidligere tilnærmingen returnerer produksjonen basert på den beregnede sammenligningen. Den siste tilnærmingen analyserer BigDecimal-verdiene basert på de spesifiserte skalaene. Denne bloggen er guidet for å sammenligne de to 'BigDecimals' i Java.