De Java-klasse Big­De­ci­mal maakt het mogelijk om complexe drijvende-kom­ma­ge­tal­len nauw­keu­rig te verwerken. Nadat ze zijn aan­ge­maakt, kun je er ver­schil­len­de methoden op toepassen. De structuur van de syntaxis is altijd hetzelfde, dus je raakt snel vertrouwd met de klasse.

Wat is Java Big­De­ci­mal?

Met Java Big­De­ci­mal kunt u complexe drijvende-kom­ma­ge­tal­len van in theorie elke grootte nauw­keu­rig weergeven en verwerken. In dit artikel worden ver­schil­len­de methoden voor het gebruik van deze klasse be­schre­ven, of het nu gaat om afronding, re­ken­kun­di­ge be­wer­kin­gen of for­maat­con­ver­sie. U leert ook hoe u deze klasse kunt im­ple­men­te­ren voor hashing en voor nauw­keu­ri­ge, ge­a­van­ceer­de ver­ge­lij­kin­gen.

Java Big­De­ci­mal bestaat uit een 32-bits geheel ge­tal­schaal en een niet-ge­schaal­de geheel ge­tal­waar­de met optionele precisie. In dit geval betekent ‘schaal’ het aantal cijfers achter de komma, op voor­waar­de dat deze groter zijn dan of gelijk zijn aan nul. Als de waarde echter kleiner is dan nul, wordt deze ver­me­nig­vul­digd met 10^(-schaal). De grootte van de klasse wordt alleen beperkt door het geheugen van de computer. Dit is echter meer een the­o­re­ti­sche over­we­ging, aangezien het on­waar­schijn­lijk is dat een programma een getal zal creëren dat het be­schik­ba­re geheugen over­schrijdt. Big­De­ci­mal in Java is uit­slui­tend bedoeld voor drijvende-kom­ma­ge­tal­len, terwijl de klasse Bi­gIn­te­ger wordt gebruikt voor het verwerken van gehele getallen.

Waarvoor is de les nodig?

Het pre­ci­sie­ni­veau van Java Big­De­ci­mal is niet voor elk scenario nodig. Maar er zijn situaties waarin de precisie van on­schat­ba­re waarde is. Het is bij­voor­beeld zeer geschikt voor e-com­mer­ce­trans­ac­ties, waar zelfs de kleinste decimale plaats van invloed kan zijn op be­re­ke­nin­gen. De klasse wordt ook gebruikt voor het uitvoeren van nauw­keu­ri­ge statische analyses. Programma’s die worden gebruikt voor de besturing en navigatie van vlieg­tui­gen of raketten zijn af­han­ke­lijk van de klasse, net als de medische sector. Op andere gebieden biedt de nauw­keu­rig­heid van Java Big­De­ci­mal de best mogelijke vei­lig­heid.

Hoe wordt een object gemaakt?

Om Big­De­ci­mal in Java te gebruiken, moet u eerst de klasse in uw Java-programma im­por­te­ren. Zodra u dat hebt gedaan, kunt u een object van deze klasse de­cla­re­ren. Maak ver­vol­gens de gewenste waarde als argument aan en geef deze door aan de juiste Java-con­struc­tor. Zodra u dit proces hebt voltooid, kunt u Big­De­ci­mals in Java gebruiken. Binnen de klasse vindt u ver­schil­len­de methoden, die we in het volgende gedeelte nader zullen toe­lich­ten. Eerst gaan we de klasse im­por­te­ren en twee Big­De­ci­mal-objecten de­cla­re­ren:

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

Nu kunt u deze objecten gebruiken met de methoden voor de klasse Big­De­ci­mal.

Voor­beel­den voor Java Big­De­ci­mal

Zodra u de objecten hebt gemaakt, kunt u ver­schil­len­de methoden gebruiken om de objecten te gebruiken en be­wer­kin­gen uit te voeren. Laten we een paar voor­beel­den bekijken om te laten zien hoe dit werkt. De uitvoer wordt gestart met behulp van het Java-commando System.out.println().

Twee Big­De­ci­mals toevoegen

Als u twee Big­De­ci­mals in Java wilt optellen, moet u de methode add() gebruiken. Sla hiervoor de twee waarden op waarvan u de som wilt berekenen. In ons voorbeeld wordt de waarde ExampleOne opgeteld bij de waarde ExampleTwo.

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

Getallen aftrekken

Om twee waarden van elkaar af te trekken, heb je de subtract() nodig. In het volgende voorbeeld trekken we ExampleTwo af van ExampleOne.

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

Waarden ver­me­nig­vul­di­gen

De methode die je gebruikt om twee Big­De­ci­mals in Java te ver­me­nig­vul­di­gen, werkt op dezelfde manier. Deze heet multiply(). Om ExampleTwo met ExampleOne te ver­me­nig­vul­di­gen, gebruik je de volgende code:

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

Getallen delen

Als u twee Big­De­ci­mal-objecten in Java wilt delen, gebruikt u de methode divide(). Deze volgt dezelfde syntaxis als de andere voor­beel­den en ziet er als volgt uit:

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

Dit werkt echter alleen als het resultaat exact of een geheel getal is. Als dit niet het geval is, wordt de volgende fout­mel­ding weer­ge­ge­ven: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.. Dit be­schrijft een runtime-fout. Om dit te voorkomen, zijn er ver­schil­len­de af­ron­dings­op­ties voor de methode divide(), die kunnen worden door­ge­ge­ven via java.math.Roun­ding­Mo­de. U kunt kiezen uit de volgende con­stan­ten:

Constant Functie
CEILING Rondt af naar positief oneindig
DOWN Rondt af naar 0
FLOOR Rondt af naar negatief oneindig
HALF_DOWN Rondt af naar het dichtst­bij­zijn­de naburige getal en het te­gen­over­ge­stel­de van 0 als beide even ver ver­wij­derd zijn
HALF_EVEN Rondt af naar het dichtst­bij­zijn­de naburige getal en naar het dichtst­bij­zijn­de even getal als beide even ver ver­wij­derd zijn
HALF_UP Rondt af naar het dichtst­bij­zijn­de naburige getal en in de richting van 0, op voor­waar­de dat beide even ver ver­wij­derd zijn
UN­NE­CES­SA­RY Slaat afronding over en voert alleen exacte be­wer­kin­gen uit; kan alleen worden gebruikt als de deling exact is
UP Rondt af van 0

Overzicht van de be­lang­rijk­ste methoden

Nu je hebt geleerd hoe je Big­De­ci­mal in Java kunt gebruiken, volgt hier een overzicht van enkele van de be­lang­rijk­ste methoden die je ermee kunt gebruiken.

Methode Functie
abs() Geeft een Big­De­ci­mal met de absolute waarde terug
add() Geeft een Big­De­ci­mal terug waarvan de waarde bestaat uit (dit + optelling)
divide() Geeft de waarde van (dit / deler) weer
max(Big­De­ci­mal val) Geeft het maximum van de Big­De­ci­mal weer
min(Big­De­ci­mal val) Geeft het minimum van de Big­De­ci­mal weer
mo­ve­Point­Left(int n) Geeft een Big­De­ci­mal weer waarbij de decimale punt naar links is ver­scho­ven met de waarde ‘n’
mo­ve­Po­in­tRight(int n) Geeft een Big­De­ci­mal weer waarbij de decimale punt naar rechts is ver­plaatst met de waarde ‘n’
multiply(Big­De­ci­mal mul­ti­pli­cand, Ma­th­Con­text mc) Geeft een waarde terug die het resultaat is van (dit * mul­ti­pli­cand).
Ga naar hoofdmenu