Kuidas kasutada Java BigDecimalit ujukomaarvude kuvamiseks
Java-klass BigDecimal võimaldab täpselt töödelda keerukaid ujukomaarvud. Kui need on loodud, saate neile rakendada erinevaid meetodeid. Süntaksi struktuur on alati sama, seega on klassiga lihtne kiiresti tutvuda.
Mis on Java BigDecimal?
Java BigDecimal võimaldab teil täpselt kuvada ja töödelda keerukaid ujukomaarvud, mis on teoreetiliselt mis tahes suurusega. Käesolevas artiklis tutvustatakse erinevaid meetodeid selle klassi kasutamiseks, olgu see siis ümardamine, aritmeetika või formaadi teisendamine. Samuti õpite, kuidas seda rakendada hash-funktsioonide ja täpsete, keerukate võrdluste jaoks.
Java BigDecimal koosneb 32-bitisest täisarvust ja skaalimata täisarvust, millel on valikuline täpsus. Sel juhul tähendab „skaala” koma järel olevate numbrite arvu, tingimusel et need on suuremad või võrdsed nulliga. Kui väärtus on väiksem kui null, korrutatakse see 10^(-skaala)ga. Klassi suurus on piiratud ainult arvuti mäluga. Kuigi see on pigem teoreetiline kaalutlus, kuna on ebatõenäoline, et programm loob numbri, mis ületab selle kättesaadava mälu. Java BigDecimal on mõeldud ainult ujukomaarvude jaoks, samas kui BigInteger klassi kasutatakse täisarvude töötlemiseks.
Milleks on see klass vajalik?
Java BigDecimal’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-kaubanduse tehingutes, kus arvutustele võib mõju avaldada isegi väikseim kümnendkoht. Klassit kasutatakse ka täpsete staatiliste analüüside tegemiseks. Lennukite ja raketite juhtimiseks ja navigeerimiseks kasutatavad programmid tuginevad sellele klassile, samuti meditsiinisektor. Teistes valdkondades pakub Java BigDecimal parimat võimalikku turvalisust.
Kuidas luuakse objekt?
BigDecimal’i kasutamiseks Java’s peate esmalt importima klassi oma Java-programmi. Kui olete seda teinud, saate deklareerida selle klassi objekti. Seejärel looge soovitud väärtus argumendina ja edastage see sobivale Java konstruktorile. Kui olete selle protsessi lõpetanud, saate BigDecimals’i Java-s kasutada. Klassis leiate mitmesuguseid meetodeid, mida selgitame järgmises jaotises üksikasjalikumalt. Esmalt impordime klassi ja deklareerime kaks BigDecimal-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");
}
}javaNüüd saate neid objekte kasutada BigDecimal-klassi meetoditega.
Näited Java BigDecimal kohta
Kui olete objektid loonud, saate neid kasutada ja nendega toiminguid teha erinevate meetodite abil. Vaadakem mõningaid näiteid, et näha, kuidas see toimib. Väljund algatatakse Java-käsu System.out.println() abil.
Kahe BigDecimali liitmine
Kui soovite Java-s liita kahte BigDecimals-i, peate kasutama add(). Selleks salvestage kaks väärtust, mille summa soovite arvutada. Meie näites liidetakse väärtus ExampleOne väärtusega ExampleTwo.
ExampleOne =
ExampleOne.add(ExampleTwo);
System.out.println ("Here is the result: " + ExampleOne);javaArvude lahutamine
Kahe väärtuse lahutamiseks üksteisest on vaja subtract() meetodit. Järgmises näites lahutame ExampleOne ExampleTwo.
ExampleOne =
ExampleOne.subtract(ExampleTwo);
System.out.println ("Here is the result: " + ExampleOne);javaVäärtuste korrutamine
Java-s kahe BigDecimal-tüüpi arvu korrutamiseks kasutatav meetod toimib sarnaselt. Seda nimetatakse multiply(). ExampleTwo ja ExampleOne korrutamiseks kasutage järgmist koodi:
ExampleOne =
ExampleOne.multiply(ExampleTwo);
System.out.println ("Here is the result: " + ExampleOne);javaArvude jagamine
Kui soovite Java-s jagada kahte BigDecimal-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);javaSee 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äitamisaja viga. Selle vältimiseks on meetodil divide() mitmesugused ümardamisvõimalused, mida saab edastada java.math.RoundingMode kaudu. Valida saab järgmiste konstantide hulgast:
| Konstant | Funktsioon |
|---|---|
| LAE | Ümardab positiivseks lõpmatuseks |
| DOWN | Ümardab 0-ni |
| FLOOR | Ümardab negatiivseks lõpmatuseks |
| POOL_ALL | Ümardab lähima naaberarvuni ja 0 vastandiks, kui mõlemad on võrdsel kaugusel |
| POOL_PAAR | Ümardab järgmise naaberarvuni ja järgmise paarisarvuni, kui mõlemad on võrdsel kaugusel |
| HALF_UP | Ümardab lähima naaberarvuni ja suunas 0, tingimusel et mõlemad on võrdsel kaugusel |
| UNNECESSARY | Jätab ümardamise vahele ja teostab ainult täpseid operatsioone; saab kasutada ainult juhul, kui jagamine on täpne |
| UP | Ümardab 0-st eemale |
Ülevaade olulisematest meetoditest
Nüüd, kui olete õppinud, kuidas kasutada BigDecimali Java-s, on siin ülevaade mõnedest olulisematest meetoditest, mida sellega kasutada saab.
| Meetod | Funktsioon |
|---|---|
| abs() | Tagastab BigDecimal absoluutväärtusega |
| add() | Tagastab BigDecimal, mille väärtus koosneb (this + Addend) |
| divide() | Väljundväärtus tuleneb (this / jagaja) |
| max(BigDecimal val) | Väljastab BigDecimal’i maksimumväärtuse |
| min(BigDecimal val) | Väljastab BigDecimal väärtuse miinimumi |
| movePointLeft(int n) | Väljastab BigDecimal, kus koma on nihutatud vasakule väärtuse ‘n’ võrra |
| movePointRight(int n) | Väljastab BigDecimal, kus koma on nihutatud paremale väärtuse „n” võrra |
| multiply(BigDecimal multiplicand, MathContext mc) | Tagastab väärtuse, mis on saadud (this * multiplicand) |
7a13b71b544a0a47b82b89c94cb2cba2
a043a1b67eddde60f587280a4ca1a324
bc7ff3cc8bd2c8e909d817f10f496251
99019e66e78c20a4b4a483ba62629e4a