Java-luokka Big­Deci­mal mah­dol­lis­taa mo­ni­mut­kais­ten liu­ku­lu­kuis­ten lukujen tarkan kä­sit­te­lyn. Kun ne on luotu, voit soveltaa niihin erilaisia me­ne­tel­miä. Syntaksin rakenne on aina sama, joten luokkaan on helppo tutustua nopeasti.

Mikä on Java Big­Deci­mal?

Java Big­Deci­ma­lin avulla voit näyttää ja käsitellä tarkasti mo­ni­mut­kai­sia liu­ku­lu­ku­ja, joiden koko voi teoriassa olla mikä tahansa. Tässä ar­tik­ke­lis­sa esi­tel­lään erilaisia tapoja käyttää tätä luokkaa, olipa kyse sitten pyö­ris­tä­mi­ses­tä, arit­meet­ti­sis­ta laskuista tai muotojen muun­ta­mi­ses­ta. Opit myös, miten sitä voidaan käyttää ha­jaut­ta­mi­seen ja tark­koi­hin, mo­ni­mut­kai­siin ver­tai­lui­hin.

Java Big­Deci­mal koostuu 32-bit­ti­ses­tä ko­ko­nais­lu­kus­kaa­las­ta ja skaa­laa­mat­to­mas­ta ko­ko­nais­lu­kuar­vos­ta, jonka tarkkuus on va­lin­nai­nen. Tässä ta­pauk­ses­sa “skaala” tar­koit­taa de­si­maa­li­pis­teen jäl­keis­ten nu­me­roi­den lu­ku­mää­rää, edel­lyt­täen että ne ovat suurempia tai yhtä suuria kuin nolla. Jos arvo on kuitenkin pienempi kuin nolla, se kerrotaan 10^(-skaala) -arvolla. Luokan kokoa rajoittaa vain tie­to­ko­neen muisti. Tämä on kuitenkin enemmän teo­reet­ti­nen huomio, koska on epä­to­den­nä­köis­tä, että ohjelma luo luvun, joka ylittää sen käy­tet­tä­vis­sä olevan muistin. Java-kielessä Big­Deci­mal on tar­koi­tet­tu yk­si­no­maan liu­ku­lu­kuil­le, kun taas Bi­gIn­te­ger-luokkaa käytetään ko­ko­nais­lu­ku­jen kä­sit­te­lyyn.

Mihin luokkaa tarvitaan?

Java Big­Deci­ma­lin tark­kuus­ta­soa ei tarvita kaikissa ti­lan­teis­sa. On kuitenkin ti­lan­tei­ta, joissa sen tarkkuus on kor­vaa­ma­ton­ta. Se palvelee esi­mer­kik­si hyvin verk­ko­kau­pan tran­sak­tiois­sa, joissa pie­nim­mät­kin de­si­maa­lit voivat vaikuttaa las­kel­miin. Luokkaa käytetään myös tarkkojen staat­tis­ten ana­lyy­sien suo­rit­ta­mi­seen. Len­to­ko­nei­den ja rakettien oh­jauk­seen ja na­vi­goin­tiin käy­tet­tä­vät ohjelmat luottavat luokkaan, samoin kuin lää­ke­tie­teen ala. Muilla aloilla Java Big­Deci­ma­lin tarjoama tark­kuus­luok­ka tarjoaa parhaan mah­dol­li­sen tur­val­li­suu­den.

Miten objekti luodaan?

Jotta voit käyttää Big­Deci­mal-luokkaa Java-kielessä, sinun on ensin tuotava luokka Java-oh­jel­maa­si. Kun olet tehnyt tämän, voit mää­ri­tel­lä tämän luokan objektin. Seu­raa­vak­si luo haluttu arvo ar­gu­ment­ti­na ja välitä se sopivaan Java-kon­struk­to­riin. Kun olet suo­rit­ta­nut tämän prosessin, voit käyttää Big­Deci­mal­sia Java-kielessä. Luokasta löydät erilaisia me­ne­tel­miä, joita selitämme tarkemmin seu­raa­vas­sa osassa. Ensin tuomme luokan ja ju­lis­tam­me kaksi Big­Deci­mal-objektia:

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

Nyt voit käyttää näitä objekteja Big­Deci­mal-luokan me­ne­tel­mien kanssa.

Esi­merk­ke­jä Java Big­Deci­ma­lis­ta

Kun olet luonut objektit, voit käyttää erilaisia me­ne­tel­miä objektien käyt­tä­mi­seen ja toi­min­to­jen suo­rit­ta­mi­seen. Kat­so­taan­pa muutamia esi­merk­ke­jä, jotka osoit­ta­vat, miten tämä toimii. Tuloste käyn­nis­te­tään Java-ko­men­nol­la System.out.println().

Kahden Big­Deci­mal-tyyppisen arvon li­sää­mi­nen

Jos haluat lisätä kaksi Big­Deci­mal-arvoa Java-kielessä, sinun on käy­tet­tä­vä add(). Tätä varten tallenna kaksi arvoa, joiden summan haluat laskea. Esi­mer­kis­säm­me arvo ExampleOne lisätään arvoon ExampleTwo.

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

Vähennä numeroita

Kahden arvon vä­hen­tä­mi­sek­si toi­sis­taan tarvitaan menetelmä subtract(). Seu­raa­vas­sa esi­mer­kis­sä vä­hen­näm­me ExampleTwo ExampleOne.

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

Kerro arvot

Java-kielessä kahden Big­Deci­mal-tyyppisen luvun ker­to­mi­seen käytetty menetelmä toimii samalla tavalla. Se on nimeltään multiply(). Jos haluat kertoa ExampleTwo ja ExampleOne, käytä seuraavaa koodia:

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

Lukujen jakaminen

Jos haluat jakaa kaksi Big­Deci­mal-objektia Java-kielessä, käytä divide() me­ne­tel­mää. Se noudattaa samaa syntaksia kuin muut esimerkit ja näyttää tältä:

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

Tämä toimii kuitenkin vain, jos tulos on tarkka tai ko­ko­nais­lu­ku. Jos näin ei ole, seuraava vir­heil­moi­tus tu­los­te­taan: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.. Tämä kuvaa ajo­nai­kais­ta virhettä. Tämän vält­tä­mi­sek­si divide()-metodille on olemassa erilaisia pyö­ris­tys­vaih­toeh­to­ja, jotka voidaan välittää java.math.Roun­ding­Mo­de-muuttujan kautta. Voit valita seu­raa­vis­ta vakioista:

Vakio Funktio
CEILING Pyöristää po­si­tii­vi­seen ää­ret­tö­mään
DOWN Pyöristää arvoon 0
FLOOR Pyöristää ne­ga­tii­vi­seen ää­ret­tö­mään
HALF_DOWN Pyöristää lähimpään naa­pu­ri­lu­kuun ja 0:n vas­ta­koh­taan, jos molemmat ovat yhtä kaukana
HALF_EVEN Pyöristää seu­raa­vaan lähimpään lukuun ja seu­raa­vaan pa­ril­li­seen lukuun, jos molemmat ovat yhtä kaukana
HALF_UP Pyöristää lähimpään naa­pu­ri­lu­kuun ja suuntaan 0, edel­lyt­täen että ne ovat molemmat yhtä kaukana
UN­NECES­SA­RY Ohittaa pyö­ris­tä­mi­sen ja suorittaa vain tarkkoja las­ku­toi­mi­tuk­sia; voidaan käyttää vain, jos jakolasku on tarkka
UP Pyöristää pois 0:sta

Tär­keim­pien me­ne­tel­mien yleis­kat­saus

Nyt kun olet oppinut käyt­tä­mään Big­Deci­mal-luokkaa Java-kielessä, tässä on yleis­kat­saus tär­keim­mis­tä me­ne­tel­mis­tä, joita voit käyttää sen kanssa.

Menetelmä Funktio
abs() Palauttaa Big­Deci­mal-arvon, jonka ab­so­luut­ti­nen arvo on
add() Palauttaa Big­Deci­mal-arvon, jonka arvo koostuu (tämä + lisättävä)
divide() Tu­los­tusar­vo on (tämä / jakaja)
max(Big­Deci­mal val) Tulostaa Big­Deci­mal-arvon suurimman arvon
min(Big­Deci­mal val) Tulostaa Big­Deci­mal-tyypin pienimmän arvon
mo­ve­Point­Left(int n) Tulostaa Big­Deci­mal-arvon, jossa de­si­maa­li­pis­te on siirretty va­sem­mal­le arvolla ‘n’
mo­ve­Point­Right(int n) Tulostaa Big­Deci­mal-arvon, jossa de­si­maa­li­pis­te on siirretty oikealle arvolla ‘n’.
multiply(Big­Deci­mal mul­tiplicand, MathCon­text mc) Palauttaa arvon, joka on tulos (this * mul­tiplicand).

df1ab6b5e7dcaaf3bfafd5b27d6b5900

Siirry pää­va­lik­koon