# 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:

```java
/ / 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");
	}
}
```

Tagad 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`.

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

### Atņ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`.

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

### Reizinā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:

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

### Skaitļ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:

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

Tomē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:

<table>
  <thead>
    <tr>
      <th><strong>Konstante</strong></th>
      <th><strong>Funkcija</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>GRIEZUMI</td>
      <td>Noapaļo līdz pozitīvai bezgalībai</td>
    </tr>
    <tr>
      <td>DOWN</td>
      <td>Noapaļo līdz 0</td>
    </tr>
    <tr>
      <td>GRĪDA</td>
      <td>Noapaļo līdz negatīvai bezgalībai</td>
    </tr>
    <tr>
      <td>HALF\_DOWN</td>
      <td>Noapaļo līdz tuvākajam skaitlim un pretējam 0, ja abi ir vienādi attālināti</td>
    </tr>
    <tr>
      <td>HALF\_EVEN</td>
      <td>Noapaļo līdz nākamajam blakus skaitlim un nākamajam pāra skaitlim, ja abi ir vienā attālumā</td>
    </tr>
    <tr>
      <td>HALF\_UP</td>
      <td>Noapaļo līdz tuvākajam skaitlim un virzienā uz 0, ja abi ir vienā attālumā</td>
    </tr>
    <tr>
      <td>UNNECESSARY</td>
      <td>Izlaiž noapaļošanu un veic tikai precīzas darbības; var izmantot tikai tad, ja dalīšana ir precīza</td>
    </tr>
    <tr>
      <td>UP</td>
      <td>Noapaļo prom no 0</td>
    </tr>
  </tbody>
</table>

## 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.

<table>
  <thead>
    <tr>
      <th><strong>Metode</strong></th>
      <th><strong>Funkcija</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>abs()</td>
      <td>Atgriež BigDecimal ar tā absolūto vērtību</td>
    </tr>
    <tr>
      <td>add()</td>
      <td>Atgriež BigDecimal, kura vērtība sastāv no (tas + summējamais)</td>
    </tr>
    <tr>
      <td>divide()</td>
      <td>Izvada vērtību, kas iegūta no (this / Divisor)</td>
    </tr>
    <tr>
      <td>max(BigDecimal val)</td>
      <td>Izvada BigDecimal maksimālo vērtību</td>
    </tr>
    <tr>
      <td>min(BigDecimal val)</td>
      <td>Izvada BigDecimal minimālo vērtību</td>
    </tr>
    <tr>
      <td>movePointLeft(int n)</td>
      <td>Izvada BigDecimal, kur decimālais punkts ir pārvietots pa kreisi par vērtību ‘n’</td>
    </tr>
    <tr>
      <td>movePointRight(int n)</td>
      <td>Izvada BigDecimal, kur decimālais punkts ir pārvietots pa labi par vērtību ‘n’</td>
    </tr>
    <tr>
      <td>multiply(BigDecimal multiplicand, MathContext mc)</td>
      <td>Atgriež vērtību, kas ir rezultāts no (this \* multiplicand)</td>
    </tr>
  </tbody>
</table>

Tip Mūsu digitālajā ceļvedī varat uzzināt vairāk par Java. Var izlasīt par Java operatoriem, atšķirībām starp [Java un JavaScript](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/java-pret-javascript/) vai uzzināt, kā [Java un Python](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/python-pret-java/) salīdzinās.


This is a markdown version of: [https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/java-klase-bigdecimal/](https://www.ionos.com/lv-lv/digitalguide/timekla-vietnes/timekla-izstrade/java-klase-bigdecimal/) for AI/LLM consumption.