Kā izmantot Java BigDecimal, lai parādītu peldošā punkta skaitļus
Java klase BigDecimal ļauj precīzi apstrādāt sarežģītus peldošā punkta skaitļus. Pēc to izveidošanas varat piemērot dažādas metodes. Sintakses struktūra vienmēr ir vienāda, tāpēc ir viegli ātri iepazīties ar šo klasi.
Kas ir Java BigDecimal?
Java BigDecimal ļauj precīzi attēlot un apstrādāt sarežģītus peldošā punkta skaitļus, kas teorētiski var būt jebkura izmēra. Šajā rakstā tiks parādītas dažādas metodes šīs klases izmantošanai, piemēram, noapaļošanai, aritmētikai vai formāta konvertēšanai. Jūs arī uzzināsiet, kā to īstenot hašēšanai un precīziem, sarežģītiem salīdzinājumiem.
Java BigDecimal sastāv no 32 bitu vesela skaitļa mēroga un nemērogeta vesela skaitļa vērtības ar izvēles precizitāti. Šajā gadījumā “mērogs” nozīmē ciparu skaitu aiz decimālzīmes, ja tie ir lielāki vai vienādi ar nulli. Tomēr, ja vērtība ir mazāka par nulli, tā tiek reizināta ar 10^(-mērogs). Klases lielumu ierobežo tikai datora atmiņa. Tomēr tas ir drīzāk teorētisks apsvērums, jo ir maz ticams, ka programma radīs skaitli, kas pārsniedz tās pieejamo atmiņu. BigDecimal Java ir paredzēts tikai peldošā punkta skaitļiem, bet BigInteger klase tiek izmantota veselo skaitļu apstrādei.
Kādam nolūkam ir nepieciešama šī nodarbība?
Java BigDecimal precizitātes līmenis nav nepieciešams visos scenārijos. Taču ir situācijas, kad tā precizitāte ir nenovērtējama. Piemēram, tā labi pilda savu uzdevumu e-komercijas darījumos, kur aprēķinus var ietekmēt pat mazākā decimāldaļa. Šo klasi izmanto arī precīzu statisko analīžu veikšanai. Programmas, ko izmanto lidmašīnu vai raķešu vadībai un navigācijai, paļaujas uz šo klasi, tāpat kā medicīnas nozare. Citās jomās Java BigDecimal piedāvātā precizitāte nodrošina vislabāko iespējamo drošību.
Kā tiek radīts objekts?
Lai izmantotu BigDecimal Java, vispirms ir jāimportē klase savā Java programmā. Pēc tam var deklarēt šīs klases objektu. Tad izveidojiet vēlamo vērtību kā argumentu un nododiet to atbilstošajam Java konstruktoram. Pēc šī procesa pabeigšanas varat izmantot BigDecimals Java. Klasē atradīsiet dažādas metodes, kuras sīkāk izskaidrosim nākamajā sadaļā. Vispirms importēsim klasi un deklarēsim divus BigDecimal 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");
}
}javaTagad jūs varat izmantot šos objektus ar BigDecimal klases metodēm.
Java BigDecimal piemēri
Kad esat izveidojis objektus, varat izmantot dažādas metodes, lai izmantotu objektus un veiktu darbības. Apskatīsim dažus piemērus, lai parādītu, kā tas darbojas. Izvade tiek uzsākta, izmantojot Java komandu System.out.println().
Divu BigDecimal pievienošana
Ja vēlaties Java pievienot divus BigDecimals, jums ir jāizmanto add() metode. Lai to izdarītu, saglabājiet divas vērtības, kuru summu vēlaties aprēķināt. Mūsu piemērā vērtība ExampleOne tiks pievienota vērtībai ExampleTwo.
ExampleOne =
ExampleOne.add(ExampleTwo);
System.out.println ("Here is the result: " + ExampleOne);javaAtņemt skaitļus
Lai atņemtu divas vērtības viena no otras, ir nepieciešama subtract() metode. Nākamajā piemērā mēs atņemam ExampleTwo no ExampleOne.
ExampleOne =
ExampleOne.subtract(ExampleTwo);
System.out.println ("Here is the result: " + ExampleOne);javaReizināt vērtības
Metode, ko izmantojat, lai reizinātu divus BigDecimals Java, darbojas līdzīgi. Tā saucas multiply(). Lai reizinātu ExampleTwo ar ExampleOne, izmantojiet šādu kodu:
ExampleOne =
ExampleOne.multiply(ExampleTwo);
System.out.println ("Here is the result: " + ExampleOne);javaSkaitļu dalīšana
Ja vēlaties sadalīt divus BigDecimal objektus Java, izmantojiet metodi divide(). Tā atbilst tādam pašam sintaksim kā citi piemēri un izskatās šādi:
ExampleOne =
ExampleOne.divide(ExampleTwo);
System.out.println ("Here is the result: " + ExampleOne);javaTomēr tas darbojas tikai tad, ja rezultāts ir precīzs vai vesels skaitlis. Ja tas tā nav, tiks parādīts šāds kļūdas ziņojums: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.. Tas apraksta izpildes laika kļūdu. Lai to izvairītos, ir pieejamas dažādas noapaļošanas opcijas metodei divide(), kuras var pārraidīt, izmantojot java.math.RoundingMode. Jūs varat izvēlēties no šādām konstantēm:
| Konstante | Funkcija |
|---|---|
| GRIEZUMI | Noapaļo līdz pozitīvai bezgalībai |
| DOWN | Noapaļo līdz 0 |
| GRĪDA | Noapaļo līdz negatīvai bezgalībai |
| HALF_DOWN | Noapaļo līdz tuvākajam skaitlim un pretējam 0, ja abi ir vienādi attālināti |
| HALF_EVEN | Noapaļo līdz nākamajam blakus skaitlim un nākamajam pāra skaitlim, ja abi ir vienā attālumā |
| HALF_UP | Noapaļo līdz tuvākajam skaitlim un virzienā uz 0, ja abi ir vienā attālumā |
| UNNECESSARY | Izlaiž noapaļošanu un veic tikai precīzas darbības; var izmantot tikai tad, ja dalīšana ir precīza |
| UP | Noapaļo prom no 0 |
Pārskats par svarīgākajām metodēm
Tagad, kad esat iemācījies, kā lietot BigDecimal Java, šeit ir pārskats par dažām no svarīgākajām metodēm, ko varat izmantot kopā ar to.
| Metode | Funkcija |
|---|---|
| abs() | Atgriež BigDecimal ar tā absolūto vērtību |
| add() | Atgriež BigDecimal, kura vērtība sastāv no (tas + summējamais) |
| divide() | Izvada vērtību, kas iegūta no (this / Divisor) |
| max(BigDecimal val) | Izvada BigDecimal maksimālo vērtību |
| min(BigDecimal val) | Izvada BigDecimal minimālo vērtību |
| movePointLeft(int n) | Izvada BigDecimal, kur decimālais punkts ir pārvietots pa kreisi par vērtību ‘n’ |
| movePointRight(int n) | Izvada BigDecimal, kur decimālais punkts ir pārvietots pa labi par vērtību ‘n’ |
| multiply(BigDecimal multiplicand, MathContext mc) | Atgriež vērtību, kas ir rezultāts no (this * multiplicand) |
7a13b71b544a0a47b82b89c94cb2cba2
a043a1b67eddde60f587280a4ca1a324
bc7ff3cc8bd2c8e909d817f10f496251
388d113eebff89cedf1ec961d226da55
b42f63c25117881a858a10be77530172