# Πώς να χρησιμοποιήσετε το Java BigDecimal για την εμφάνιση αριθμών κινητής υποδιαστολής

Η κλάση 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:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<table>
  <thead>
    <tr>
      <th><strong>Σταθερά</strong></th>
      <th><strong>Λειτουργία</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>ΟΡΙΟ</td>
      <td>Στρογγυλοποιεί στο θετικό άπειρο</td>
    </tr>
    <tr>
      <td>DOWN</td>
      <td>Στρογγυλοποιεί στο 0</td>
    </tr>
    <tr>
      <td>FLOOR</td>
      <td>Στρογγυλοποίηση σε αρνητικό άπειρο</td>
    </tr>
    <tr>
      <td>HALF\_DOWN</td>
      <td>Στρογγυλοποίηση στον πλησιέστερο γειτονικό αριθμό και το αντίθετο του 0 εάν και οι δύο είναι ισοδύναμοι</td>
    </tr>
    <tr>
      <td>HALF\_EVEN</td>
      <td>Στρογγυλοποίηση στον επόμενο γειτονικό αριθμό και στον επόμενο ζυγό αριθμό, εάν και οι δύο είναι ισαπέχοντες</td>
    </tr>
    <tr>
      <td>HALF\_UP</td>
      <td>Στρογγυλοποιεί στον πλησιέστερο γειτονικό αριθμό και προς την κατεύθυνση του 0, υπό την προϋπόθεση ότι και οι δύο βρίσκονται στην ίδια απόσταση</td>
    </tr>
    <tr>
      <td>UNNECESSARY</td>
      <td>Παραλείπει τη στρογγυλοποίηση και εκτελεί μόνο ακριβείς πράξεις. Μπορεί να χρησιμοποιηθεί μόνο αν η διαίρεση είναι ακριβής.</td>
    </tr>
    <tr>
      <td>UP</td>
      <td>Στρογγυλοποιεί μακριά από το 0</td>
    </tr>
  </tbody>
</table>

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

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

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

Tip Στον Ψηφιακό Οδηγό μας, μπορείτε να μάθετε περισσότερα για τη Java. Μπορείτε να διαβάσετε για τους τελεστές της Java, τις διαφορές μεταξύ [Java και JavaScript](https://www.ionos.com/el-gr/digitalguide/istoselides/anaptyxi-istoselidon/java-enanti-javascript/) ή να μάθετε πώς συγκρίνονται [η Java και η Python](https://www.ionos.com/el-gr/digitalguide/istoselides/anaptyxi-istoselidon/python-enanti-java/).

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


This is a markdown version of: [https://www.ionos.com/el-gr/digitalguide/istoselides/anaptyxi-istoselidon/taxi-java-bigdecimal/](https://www.ionos.com/el-gr/digitalguide/istoselides/anaptyxi-istoselidon/taxi-java-bigdecimal/) for AI/LLM consumption.