Paano Paghambingin ang Dalawang BigDecimal sa Java

Paano Paghambingin Ang Dalawang Bigdecimal Sa Java



Ang ' BigDecimal ” class sa Java ay nagbibigay ng arithmetic, scale management, rounding, comparison functionalities, atbp. Bilang karagdagan, binibigyang-daan nito ang mga programmer na makayanan ang malaki at maliit na floating-point integer na may pambihirang katumpakan. Nakakatulong ito sa pagkamit ng higit na katumpakan sa nakapirming bilang ng mga decimal.

Ang artikulong ito ay magdedetalye sa mga diskarte upang ihambing ang dalawang 'BigDecimals' sa Java.

Ano ang 'BigDecimal' sa Java?

isang ' BigDecimal ” sa Java ay binubuo ng 32-bit integer scale at ginagamit upang pangasiwaan ang napakalaki at napakaliit na mga floating-point na numero. Ang ' sukat ” ay kumakatawan sa bilang ng mga digit sa kanan ng decimal point.







Paano Paghambingin ang Dalawang BigDecimal sa Java?

Upang ihambing ang dalawang BigDecimal sa Java, ilapat ang mga sumusunod na diskarte:



Bago tumungo sa mga diskarte, tiyaking isama ang package na ibinigay sa ibaba upang ma-access ang ' matematika ” mga pamamaraan ng klase:



angkat java.math.* ;

Diskarte 1: Paghambingin ang Dalawang BigDecimal sa Java Gamit ang Paraang “compareTo()”.

Ang ' compareTo() 'pinaghahambing ng pamamaraan ang dalawa' BigDecimals ” at ibinabalik ang kinalabasan batay sa mga sumusunod na parameter:





Ibinalik na Kinalabasan Computed Comparison
1 Kung ang dating BigDecimal ay mas malaki kaysa sa huling BigDecimal.
0 Sa kaso ng dating BigDecimal na katumbas ng huling BigDecimal.
-1 Kapag ang dating BigDecimal ay mas mababa kaysa sa huling BigDecimal.

Ang pamamaraang ito ay maaaring ilapat upang ihambing ang dalawang nilikha ' BigDecimal ” value at ibalik ang kaukulang resulta sa pamamagitan ng “ kung hindi ” pahayag.

Syntax



pampubliko int compareTo ( Bagay obj )

Ayon sa syntax na ito, ' Object obj ” ay tumutugma sa bagay na kailangang ihambing.

Halimbawa

Ipinapaliwanag ng halimbawang ibinigay sa ibaba ang tinalakay na konsepto:

pampubliko klase ihambing ang malaking desimal {
pampubliko static walang bisa pangunahing ( String args [ ] ) {
BigDecimal val1, val2 ;
pagpipilian1 = bago BigDecimal ( '26326.04' ) ;
val2 = bago BigDecimal ( '22145.20' ) ;
kung ( pagpipilian1. compareTo ( val2 ) == 0 ) {
Sistema . palabas . println ( pagpipilian1 + 'at' + val2 + 'ay pantay' ) ;
}
iba pa kung ( pagpipilian1. compareTo ( val2 ) == - 1 ) {
Sistema . palabas . println ( pagpipilian1 + ' ay mas kaunti sa ' + val2 ) ;
}
iba pa {
Sistema . palabas . println ( pagpipilian1. compareTo ( val2 ) ) ;
Sistema . palabas . println ( pagpipilian1 + 'ay mas malaki kaysa sa' + val2 ) ;
}

Ayon sa mga linya ng code sa itaas, ilapat ang mga sumusunod na hakbang:

  • Una sa lahat, lumikha ng dalawang ' BigDecimals ” pagkakaroon ng mga nakasaad na halaga.
  • Ngayon, iugnay ang ' compareTo() ” na pamamaraan na may parehong mga itinalagang halaga, at sa nasiyahang kondisyon sa “ kung ” pahayag, i-log ang kaukulang mensahe.
  • Tandaan: Tinukoy ang mga kundisyon batay sa ibinalik na kinalabasan ng pamamaraan para gumana nang maayos ang pamamaraan.
  • Gayundin, ang ' iba kung Tinutukoy ng pahayag ng ” ang ibang kundisyon na isinasaalang-alang ang uri ng paraan ng pagbabalik, ibig sabihin, “ -1 ”.
  • Sa wakas, gawin ang ' iba pa ” na pahayag ay magkakabisa sa parehong mga kundisyon na hindi nasiyahan sa itaas.

Output

Sa kinalabasan sa itaas, ang ibinalik na ' 1 ' ay nagpapahiwatig na ang ' iba pa ” pahayag ay hinihingi.

Diskarte 2: Paghambingin ang Dalawang BigDecimal sa Java Gamit ang Paraang “equals()”.

Ang ' katumbas ng() 'paraan ng Java' BigDecimal Ang klase ng ” ay ginagamit upang ihambing ang BigDecimals para sa pagkakapantay-pantay batay sa halaga at sukat. Maaaring ipatupad ang pamamaraang ito upang maglapat ng tseke sa BigDecimal na may pagkakaiba-iba sa kanilang sukat.

Syntax

pampubliko boolean katumbas ( Bagay x )

Sa syntax na ito, ' Bagay x ” ay tumutugma sa bagay kung saan kailangang ikumpara ang BigDecimal na ito.

Halimbawa

Tingnan natin ang sumusunod na halimbawa:

pampubliko klase ihambing ang malaking desimal2 {
pampubliko static walang bisa pangunahing ( String args [ ] ) {
BigDecimal val1, val2 ;
pagpipilian1 = bago BigDecimal ( '205.0' ) ;
val2 = bago BigDecimal ( '205.00' ) ;
kung ( pagpipilian1. katumbas ( val2 ) ) {
Sistema . palabas . println ( pagpipilian1 + 'at' + val2 + 'ay pantay' ) ;
}
iba pa {
Sistema . palabas . println ( pagpipilian1 + 'at' + val2 + 'ay hindi pantay' ) ;
}
} }

Ayon sa code sa itaas:

  • Gayundin, lumikha ng dalawang BigDecimal na may pagkakaiba-iba sa kanilang sukat.
  • Tandaan: 0 'ay hindi katumbas ng' 2.00 ” kung ihahambing sa pamamaraang ito.
  • Pagkatapos nito, ilapat ang ' katumbas ng() ” paraan upang ihambing ang ginawang BigDecimals at ibalik ang kaukulang resulta sa pamamagitan ng “ kung hindi ” pahayag.

Output

Sa kinalabasan na ito, mapapansin na ang parehong ' BigDecimals ” ay hindi pantay dahil sa pagkakaiba-iba ng sukat.

Gayunpaman, ang sumusunod na resulta ay humahantong sa paggawa ng 'BigDecimals' na pantay:

Ganyan mo maihahambing ang dalawa' BigDecimals ” sa Java.

Konklusyon

isang ' BigDecimal ” sa Java ay binubuo ng 32-bit integer scale. Ang dalawang BigDecimal sa Java ay maihahambing sa pamamagitan ng paglalapat ng “ compareTo() ', o ang ' katumbas ng() ' paraan. Ang dating diskarte ay nagbabalik ng output batay sa kinakalkula na paghahambing. Sinusuri ng huling diskarte ang mga halaga ng BigDecimal batay sa tinukoy na mga sukat. Ang blog na ito ay ginagabayan upang ihambing ang dalawang 'BigDecimals' sa Java.