Η κλάση Java BigDecimal επιτρέπει την επεξεργασία σύνθετων αριθμών κινητής υποδιαστολής με ακρίβεια. Μόλις δημιουργηθούν, μπορείτε να εφαρμόσετε διαφορετικές μεθόδους σε αυτούς. Η δομή της σύνταξης είναι πάντα η ίδια, οπότε είναι εύκολο να εξοικειωθείτε γρήγορα με την κλάση.

Τι είναι το Java BigDecimal;

Το Java BigDecimal σας επιτρέπει να εμφανίζετε και να επεξεργάζεστε με ακρίβεια σύνθετους αριθμούς κινητής υποδιαστολής οποιουδήποτε μεγέθους. Αυτό το άρθρο θα σας δείξει διαφορετικές μεθόδους για τη χρήση αυτής της κλάσης, είτε για στρογγυλοποίηση, αριθμητική είτε για μετατροπή μορφής. Θα μάθετε επίσης πώς να την εφαρμόζετε για κατακερματισμό και για ακριβείς, εξελιγμένες συγκρίσεις.

Το Java BigDecimal αποτελείται από μια κλίμακα ακέραιων αριθμών 32 bit και μια μη κλιμακωμένη ακέραια τιμή με προαιρετική ακρίβεια. Σε αυτήν την περίπτωση, «κλίμακα» σημαίνει τον αριθμό των ψηφίων μετά την υποδιαστολή, υπό την προϋπόθεση ότι είναι μεγαλύτερα ή ίσα με το μηδέν. Ωστόσο, εάν η τιμή είναι μικρότερη από το μηδέν, πολλαπλασιάζεται με 10^(-κλίμακα). Το μέγεθος της κλάσης περιορίζεται μόνο από τη μνήμη του υπολογιστή. Ωστόσο, αυτό είναι περισσότερο μια θεωρητική παρατήρηση, καθώς είναι απίθανο ένα πρόγραμμα να δημιουργήσει έναν αριθμό που υπερβαίνει τη διαθέσιμη μνήμη του. Το BigDecimal στη Java προορίζεται αποκλειστικά για αριθμούς κινητής υποδιαστολής, ενώ η κλάση BigInteger χρησιμοποιείται για την επεξεργασία ακέραιων αριθμών.

Γιατί είναι απαραίτητο το μάθημα;

Το επίπεδο ακρίβειας του Java BigDecimal δεν είναι απαραίτητο σε κάθε περίπτωση. Ωστόσο, υπάρχουν περιπτώσεις όπου η ακρίβειά του είναι ανεκτίμητη. Για παράδειγμα, εξυπηρετεί καλά τον σκοπό του στις συναλλαγές ηλεκτρονικού εμπορίου, όπου οι υπολογισμοί μπορούν να επηρεαστούν ακόμη και από το μικρότερο δεκαδικό ψηφίο. Η κλάση χρησιμοποιείται επίσης για τη διεξαγωγή ακριβών στατικών αναλύσεων. Τα προγράμματα που χρησιμοποιούνται για τον έλεγχο και την πλοήγηση αεροπλάνων ή πυραύλων βασίζονται στην κλάση, όπως και ο ιατρικός τομέας. Σε άλλους τομείς, τα επίπεδα ακρίβειας που προσφέρει το Java BigDecimal παρέχουν την καλύτερη δυνατή ασφάλεια.

Πώς δημιουργείται ένα αντικείμενο;

Για να χρησιμοποιήσετε το BigDecimal στη Java, θα πρέπει πρώτα να εισαγάγετε την κλάση στο πρόγραμμα Java. Αφού το κάνετε αυτό, μπορείτε να δηλώσετε ένα αντικείμενο αυτής της κλάσης. Στη συνέχεια, δημιουργήστε την επιθυμητή τιμή ως όρισμα και μεταβιβάστε την στον κατάλληλο κατασκευαστή Java. Αφού ολοκληρώσετε αυτή τη διαδικασία, μπορείτε να χρησιμοποιήσετε το BigDecimals στη Java. Μέσα στην κλάση, θα βρείτε διάφορες μεθόδους, τις οποίες θα εξηγήσουμε με περισσότερες λεπτομέρειες στην επόμενη ενότητα. Πρώτα, θα εισαγάγουμε την κλάση και θα δηλώσουμε δύο αντικείμενα BigDecimal:

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

Τώρα μπορείτε να χρησιμοποιήσετε αυτά τα αντικείμενα με τις μεθόδους της κλάσης BigDecimal.

Παραδείγματα για Java BigDecimal

Αφού δημιουργήσετε τα αντικείμενα, μπορείτε να χρησιμοποιήσετε διάφορες μεθόδους για να τα χρησιμοποιήσετε και να εκτελέσετε λειτουργίες. Ας δούμε μερικά παραδείγματα για να σας δείξουμε πώς λειτουργεί αυτό. Η έξοδος ξεκινά χρησιμοποιώντας την εντολή Java System.out.println().

Προσθήκη δύο BigDecimals

Αν θέλετε να προσθέσετε δύο BigDecimals στη Java, πρέπει να χρησιμοποιήσετε τη μέθοδο add(). Για να το κάνετε αυτό, αποθηκεύστε τις δύο τιμές για τις οποίες θέλετε να υπολογίσετε το άθροισμα. Στο παράδειγμά μας, η τιμή ExampleOne θα προστεθεί στην τιμή ExampleTwo.

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

Αφαίρεση αριθμών

Για να αφαιρέσετε δύο τιμές μεταξύ τους, χρειάζεστε τη μέθοδο subtract(). Στο επόμενο παράδειγμα, αφαιρούμε ExampleTwo από ExampleOne.

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

Πολλαπλασιάστε τις τιμές

Η μέθοδος που χρησιμοποιείτε για να πολλαπλασιάσετε δύο BigDecimals στη Java λειτουργεί με παρόμοιο τρόπο. Ονομάζεται multiply(). Για να πολλαπλασιάσετε ExampleTwo με ExampleOne, χρησιμοποιήστε τον ακόλουθο κώδικα:

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

Διαίρεση αριθμών

Αν θέλετε να διαιρέσετε δύο αντικείμενα BigDecimal σε Java, χρησιμοποιήστε τη μέθοδο divide(). Αυτή ακολουθεί την ίδια σύνταξη με τα άλλα παραδείγματα και έχει την εξής μορφή:

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

Ωστόσο, αυτό λειτουργεί μόνο αν το αποτέλεσμα είναι ακριβές ή ακέραιο. Αν δεν είναι έτσι, θα εμφανιστεί το ακόλουθο μήνυμα σφάλματος: java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.. Αυτό περιγράφει ένα σφάλμα εκτέλεσης. Για να το αποφύγετε, υπάρχουν διάφορες επιλογές στρογγυλοποίησης για τη μέθοδο divide(), οι οποίες μπορούν να μεταδοθούν μέσω java.math.RoundingMode. Μπορείτε να επιλέξετε από τις ακόλουθες σταθερές:

Σταθερά Λειτουργία
ΟΡΙΟ Στρογγυλοποιεί στο θετικό άπειρο
DOWN Στρογγυλοποιεί στο 0
FLOOR Στρογγυλοποίηση σε αρνητικό άπειρο
HALF_DOWN Στρογγυλοποίηση στον πλησιέστερο γειτονικό αριθμό και το αντίθετο του 0 εάν και οι δύο είναι ισοδύναμοι
HALF_EVEN Στρογγυλοποίηση στον επόμενο γειτονικό αριθμό και στον επόμενο ζυγό αριθμό, εάν και οι δύο είναι ισαπέχοντες
HALF_UP Στρογγυλοποιεί στον πλησιέστερο γειτονικό αριθμό και προς την κατεύθυνση του 0, υπό την προϋπόθεση ότι και οι δύο βρίσκονται στην ίδια απόσταση
UNNECESSARY Παραλείπει τη στρογγυλοποίηση και εκτελεί μόνο ακριβείς πράξεις. Μπορεί να χρησιμοποιηθεί μόνο αν η διαίρεση είναι ακριβής.
UP Στρογγυλοποιεί μακριά από το 0

Επισκόπηση των σημαντικότερων μεθόδων

Τώρα που έμαθες πώς να χρησιμοποιείς το BigDecimal στη Java, ακολουθεί μια επισκόπηση μερικές από τις πιο σημαντικές μεθόδους που μπορείς να χρησιμοποιήσεις μαζί του.

Μέθοδος Συνάρτηση
abs() Επιστρέφει ένα BigDecimal με την απόλυτη τιμή του
add() Επιστρέφει ένα BigDecimal του οποίου η τιμή αποτελείται από (αυτό + προσθετό)
divide() Η τιμή εξόδου προκύπτει από (αυτό / Διαιρέτης)
max(BigDecimal val) Εξάγει το μέγιστο του BigDecimal
min(BigDecimal val) Εξάγει το ελάχιστο του BigDecimal
movePointLeft(int n) Εξάγει ένα BigDecimal όπου η δεκαδική τελεία έχει μετακινηθεί προς τα αριστερά κατά την τιμή «n»
movePointRight(int n) Εξάγει ένα BigDecimal όπου η δεκαδική τελεία έχει μετακινηθεί προς τα δεξιά κατά την τιμή «n»
multiply(BigDecimal multiplicand, MathContext mc) Επιστρέφει μια τιμή που προκύπτει από (αυτό * multiplicand)

7α13β71β544α0α47β82β89c94cb2cba2

Go to Main Menu