Java-klass Big­Deci­mal võimaldab täpselt töödelda keerukaid uju­ko­ma­ar­vud. Kui need on loodud, saate neile rakendada erinevaid meetodeid. Süntaksi struktuur on alati sama, seega on klassiga lihtne kiiresti tutvuda.

Mis on Java Big­Deci­mal?

Java Big­Deci­mal võimaldab teil täpselt kuvada ja töödelda keerukaid uju­ko­ma­ar­vud, mis on teo­ree­ti­li­selt mis tahes suurusega. Käes­ole­vas artiklis tut­vus­ta­takse erinevaid meetodeid selle klassi ka­su­ta­miseks, olgu see siis ümar­da­mine, arit­mee­tika või formaadi tei­sen­da­mine. Samuti õpite, kuidas seda rakendada hash-funkt­sioo­nide ja täpsete, keerukate võrdluste jaoks.

Java Big­Deci­mal koosneb 32-bitisest täis­ar­vust ja skaa­li­mata täis­ar­vust, millel on va­li­ku­line täpsus. Sel juhul tähendab „skaala” koma järel olevate numbrite arvu, tin­gi­mu­sel et need on suuremad või võrdsed nulliga. Kui väärtus on väiksem kui null, kor­ru­ta­takse see 10^(-skaala)ga. Klassi suurus on piiratud ainult arvuti mäluga. Kuigi see on pigem teo­ree­ti­line kaalutlus, kuna on eba­tõe­näo­line, et programm loob numbri, mis ületab selle kät­te­saa­dava mälu. Java Big­Deci­mal on mõeldud ainult uju­ko­ma­ar­vude jaoks, samas kui BigIn­te­ger klassi ka­su­ta­takse täis­ar­vude tööt­le­miseks.

Milleks on see klass vajalik?

Java Big­Deci­mal’i täpsust ei ole vaja igas olukorras. Kuid on olukordi, kus selle täpsus on hindamatu. Näiteks täidab see hästi oma ülesannet e-kau­ban­duse te­hin­gu­tes, kus ar­vu­tus­tele võib mõju avaldada isegi väikseim küm­nend­koht. Klassit ka­su­ta­takse ka täpsete staa­ti­liste ana­lüü­side te­ge­miseks. Lennukite ja raketite juh­ti­miseks ja na­vi­gee­ri­miseks ka­su­ta­ta­vad prog­ram­mid tuginevad sellele klassile, samuti me­dit­sii­ni­sek­tor. Teistes vald­kon­da­des pakub Java Big­Deci­mal parimat või­ma­likku tur­va­li­sust.

Kuidas luuakse objekt?

Big­Deci­mal’i ka­su­ta­miseks Java’s peate esmalt importima klassi oma Java-programmi. Kui olete seda teinud, saate dek­la­ree­rida selle klassi objekti. Seejärel looge soovitud väärtus ar­gu­men­dina ja edastage see sobivale Java konst­ruk­to­rile. Kui olete selle protsessi lõpetanud, saate Big­Deci­mals’i Java-s kasutada. Klassis leiate mit­me­su­gu­seid meetodeid, mida selgitame järgmises jaotises ük­sik­as­ja­li­ku­malt. Esmalt impordime klassi ja dek­la­ree­rime kaks Big­Deci­mal-objekti:

/ / 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

Nüüd saate neid objekte kasutada Big­Deci­mal-klassi mee­to­di­tega.

Näited Java Big­Deci­mal kohta

Kui olete objektid loonud, saate neid kasutada ja nendega toi­min­guid teha erinevate meetodite abil. Vaadakem mõningaid näiteid, et näha, kuidas see toimib. Väljund al­ga­ta­takse Java-käsu System.out.println() abil.

Kahe Big­Deci­mali liitmine

Kui soovite Java-s liita kahte Big­Deci­mals-i, peate kasutama add(). Selleks sal­ves­tage kaks väärtust, mille summa soovite arvutada. Meie näites lii­de­takse väärtus ExampleOne väär­tu­sega ExampleTwo.

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

Arvude la­hu­ta­mine

Kahe väärtuse la­hu­ta­miseks üks­tei­sest on vaja subtract() meetodit. Järgmises näites lahutame ExampleOne ExampleTwo.

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

Väärtuste kor­ru­ta­mine

Java-s kahe Big­Deci­mal-tüüpi arvu kor­ru­ta­miseks kasutatav meetod toimib sarnaselt. Seda ni­me­ta­takse multiply(). ExampleTwo ja ExampleOne kor­ru­ta­miseks kasutage järgmist koodi:

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

Arvude jagamine

Kui soovite Java-s jagada kahte Big­Deci­mal-objekti, kasutage meetodit divide(). See järgib sama süntaksit kui teised näited ja näeb välja järgmine:

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

See toimib aga ainult juhul, kui tulemus on täpne või täisarv. Kui see nii ei ole, kuvatakse järgmine veateade: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.. See kirjeldab käi­ta­mis­aja viga. Selle väl­ti­miseks on meetodil divide() mit­me­su­gu­sed ümar­da­mis­või­ma­lu­sed, mida saab edastada java.math.Roun­ding­Mode kaudu. Valida saab järgmiste kons­tan­tide hulgast:

Konstant Funkt­sioon
LAE Ümardab po­si­tiiv­seks lõp­ma­tu­seks
DOWN Ümardab 0-ni
FLOOR Ümardab ne­ga­tiiv­seks lõp­ma­tu­seks
POOL_ALL Ümardab lähima naa­ber­ar­vuni ja 0 vas­tan­diks, kui mõlemad on võrdsel kaugusel
POOL_PAAR Ümardab järgmise naa­ber­ar­vuni ja järgmise paa­ris­ar­vuni, kui mõlemad on võrdsel kaugusel
HALF_UP Ümardab lähima naa­ber­ar­vuni ja suunas 0, tin­gi­mu­sel et mõlemad on võrdsel kaugusel
UN­NECES­SARY Jätab ümar­da­mise vahele ja teostab ainult täpseid ope­rat­sioone; saab kasutada ainult juhul, kui jagamine on täpne
UP Ümardab 0-st eemale

Ülevaade olu­li­se­ma­test mee­to­di­test

Nüüd, kui olete õppinud, kuidas kasutada Big­Deci­mali Java-s, on siin ülevaade mõnedest olu­li­se­ma­test mee­to­di­test, mida sellega kasutada saab.

Meetod Funkt­sioon
abs() Tagastab Big­Deci­mal ab­so­luut­väär­tu­sega
add() Tagastab Big­Deci­mal, mille väärtus koosneb (this + Addend)
divide() Väl­jund­väär­tus tuleneb (this / jagaja)
max(Big­Deci­mal val) Väljastab Big­Deci­mal’i mak­si­mum­väär­tuse
min(Big­Deci­mal val) Väljastab Big­Deci­mal väärtuse miinimumi
mo­ve­Point­Left(int n) Väljastab Big­Deci­mal, kus koma on nihutatud vasakule väärtuse ‘n’ võrra
mo­ve­Point­Right(int n) Väljastab Big­Deci­mal, kus koma on nihutatud paremale väärtuse „n” võrra
multiply(Big­Deci­mal mul­tip­licand, Mat­hCon­text mc) Tagastab väärtuse, mis on saadud (this * mul­tip­licand)

7a13b71b544a0a47b82b89c94cb2cba2

a043a1b67eddde60f587280a4ca1a324

bc7ff3cc8bd2c8e909d817f10f496251

99019e66e78c20a4b4a483ba62629e4a

Go to Main Menu