Java klasė Big­De­ci­mal leidžia tiksliai apdoroti su­dė­tin­gus skaičius su slan­kiuo­ju kableliu. Juos sukūrus, galite taikyti įvairius metodus. Sintaksės struktūra visada yra ta pati, todėl lengva greitai su­si­pa­žin­ti su klase.

Kas yra Java Big­De­ci­mal?

Java Big­De­ci­mal leidžia tiksliai rodyti ir apdoroti su­dė­tin­gus plau­kio­jan­čio­jo kablelio skaičius, kurių dydis teoriškai gali būti bet koks. Šiame straips­ny­je bus pateikti įvairūs šio klasės naudojimo būdai, pvz., ap­va­li­ni­mui, arit­me­ti­kai ar formato kon­ver­ta­vi­mui. Taip pat su­ži­no­si­te, kaip ją įgy­ven­din­ti maišymo ir tikslių, sudėtingų pa­ly­gi­ni­mų tikslais.

Java Big­De­ci­mal susideda iš 32 bitų sveikųjų skaičių skalės ir neskalės sveikųjų skaičių vertės su pa­si­rink­ti­niu tikslumu. Šiuo atveju „skalė“ reiškia skaičių po kablelio, jei jis yra didesnis arba lygus nuliui. Tačiau jei vertė yra mažesnė už nulį, ji dauginama iš 10^(-skalė). Klasės dydis ribojamas tik kom­piu­te­rio atminties dydžiu. Tačiau tai yra labiau teorinis svars­ty­mas, nes mažai tikėtina, kad programa sukurs skaičių, kuris viršytų jos turimą atmintį. Java Big­De­ci­mal yra skirtas tik slankiojo kablelio skaičiams, o Bi­gIn­te­ger klasė naudojama svei­kie­siems skaičiams apdoroti.

Kam rei­ka­lin­ga ši klasė?

Java Big­De­ci­mal tikslumo lygis nėra rei­ka­lin­gas kiekvienu atveju. Tačiau yra situacijų, kai jo tikslumas yra ne­įkai­no­ja­mas. Pa­vyz­džiui, jis puikiai tinka elekt­ro­ni­nės ko­mer­ci­jos san­do­riams, kuriuose net ma­žiau­sias de­šim­tai­nis skaičius gali turėti įtakos skai­čia­vi­mams. Ši klasė taip pat naudojama tikslioms statinėms analizėms atlikti. Programos, nau­do­ja­mos lėktuvų ar raketų valdymui ir na­vi­ga­ci­jai, taip pat medicinos srityje, remiasi šia klase. Kitose srityse Java Big­De­ci­mal tikslumo lygis užtikrina geriausią įmanomą saugumą.

Kaip sukuriama objekto?

Norėdami naudoti Big­De­ci­mal Java kalboje, pir­miau­sia turėsite im­por­tuo­ti klasę į savo Java programą. Tai padarę, galėsite dekla­ruo­ti šios klasės objektą. Tada sukurkite norimą vertę kaip argumentą ir per­duo­ki­te ją ati­tin­ka­mam Java konst­ruk­to­riui. Baigę šį procesą, galėsite naudoti Big­De­ci­mals Java kalboje. Klasėje rasite įvairių metodų, kuriuos išsamiau pa­aiš­kin­si­me kitame skyriuje. Pir­miau­sia im­por­tuo­si­me klasę ir dekla­ruo­si­me du Big­De­ci­mal objektus:

/ / Your Java program for the BigDecimal class
import java.math.BigDecimal;
public class BigDecimalExample
{
	public static void main(String[] args)
	{
		/ / Create two new BigDecimals
		BigDecimal ExampleOne =
			new BigDecimal ("1275936001.744297361");
		BigDecimal ExampleTwo =
			new BigDecimal ("4746691047.132719503");
	}
}
java

Dabar galite naudoti šiuos objektus su Big­De­ci­mal klasės metodais.

Java Big­De­ci­mal pa­vyz­džiai

Sukūrę objektus, galite naudoti įvairius metodus, kad juos pa­nau­do­tu­mė­te ir at­lik­tu­mė­te ope­ra­ci­jas. Pa­žvel­ki­me į keletą pavyzdžių, kad pa­ma­ty­tu­me, kaip tai veikia. Re­zul­ta­tas gaunamas naudojant Java komandą System.out.println().

Dviejų Big­De­ci­mal pri­dė­ji­mas

Jei norite sudėti du Big­De­ci­mal tipų skaičius Java kalboje, turite naudoti add() metodą. Tam reikia įrašyti du skaičius, kurių sumą norite ap­skai­čiuo­ti. Mūsų pavyzdyje skaičius ExampleOne bus sudėtas su skaičiumi ExampleTwo.

ExampleOne =
ExampleOne.add(ExampleTwo);
System.out.println ("Here is the result: " + ExampleOne);
java

Atimti skaičius

Norėdami atimti dvi reikšmes viena iš kitos, reikia naudoti subtract() metodą. Kituose pa­vyz­džiuo­se atimame ExampleTwoExampleOne.

ExampleOne =
ExampleOne.subtract(ExampleTwo);
System.out.println ("Here is the result: " + ExampleOne);
java

Dauginti vertes

Metodas, kurį naudojate dviejų Big­De­ci­mal dau­gi­ni­mui Java kalboje, veikia panašiai. Jis vadinasi multiply(). Norėdami pa­dau­gin­ti ExampleTwoExampleOne, naudokite šį kodą:

ExampleOne =
ExampleOne.multiply(ExampleTwo);
System.out.println ("Here is the result: " + ExampleOne);
java

Skaičių dalijimas

Jei norite padalyti du Big­De­ci­mal objektus Java kalboje, naudokite divide() metodą. Jis atitinka tą pačią sintaksę kaip ir kiti pa­vyz­džiai ir atrodo taip:

ExampleOne =
ExampleOne.divide(ExampleTwo);
System.out.println ("Here is the result: " + ExampleOne);
java

Tačiau tai veikia tik tuo atveju, jei re­zul­ta­tas yra tikslus arba sveikasis skaičius. Jei taip nėra, bus rodomas šis klaidos pra­ne­ši­mas: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.. Tai apibūdina vykdymo klaidą. Norint to išvengti, yra įvairios ap­va­li­ni­mo parinktys metodui divide(), kurios gali būti per­duo­da­mos per java.math.Roun­dingMo­de. Galite pa­si­rink­ti iš šių konstantų:

Konstanta funkcija
LUBOS Apvalina iki teigiamo begalybės
DOWN Apvalina iki 0
FLOOR Apvalina iki neigiamo begalybės
PUSĖ_ŽEMYN Apvalina iki ar­ti­miau­sio skaičiaus ir priešingo 0, jei abu yra vienodai nutolę
PUSĖ_LYGUS Apvalina iki ar­ti­miau­sio skaičiaus ir ar­ti­miau­sio lygaus skaičiaus, jei abu yra vienodai nutolę
HALF_UP Apvalina iki ar­ti­miau­sio skaičiaus ir 0 kryptimi, jei abu yra vienodai nutolę
UN­NE­CES­SA­RY Aplenkia ap­va­li­ni­mą ir atlieka tik tikslias ope­ra­ci­jas; gali būti nau­do­ja­mas tik tuo atveju, jei dalybos yra tikslios
UP Apvalina nuo 0

Svar­biau­sių metodų apžvalga

Dabar, kai jau išmokote naudoti Big­De­ci­mal Java kalboje, pa­tei­kia­me svar­biau­sių metodų, kuriuos galite naudoti su juo, apžvalgą.

Metodas Funkcija
abs() Grąžina Big­De­ci­mal su jo ab­so­liu­čią­ja verte
add() Grąžina Big­De­ci­mal, kurio vertė sudaryta iš (this + Addend)
divide() Išvesties vertė gaunama iš (this / Divisor)
max(Big­De­ci­mal val) Išveda di­džiau­sią Big­De­ci­mal vertę
min(Big­De­ci­mal val) Išveda Big­De­ci­mal minimumą
move­Point­Left(int n) Išveda Big­De­ci­mal, kurio de­šim­tai­nis taškas per­ke­lia­mas į kairę vertės „n“ dydžiu
move­Point­Right(int n) Išveda Big­De­ci­mal, kurio de­šim­tai­nis taškas buvo perkelta į dešinę „n“ vertės
multiply(Big­De­ci­mal mul­ti­p­li­cand, Math­Con­text mc) Grąžina vertę, gautą iš (this * mul­ti­p­li­cand)

7a13b71b544a0a47b82b89c94cb2cba2

a043a1b67eddde60f587280a4ca1a324

bc7ff3cc8bd2c8e909d817f10f496251

Go to Main Menu