Πίνακας περιεχομένων:
Βίντεο: Section 1: Less Comfortable 2024
Από καιρό σε καιρό, θα πρέπει να μετατρέψετε αριθμητικά δεδομένα ενός τύπου σε άλλο στην Java. Μπορεί να χρειαστεί να μετατρέψετε μια διπλή τιμή σε έναν ακέραιο ή αντίστροφα. Ορισμένες μετατροπές μπορούν να γίνουν αυτόματα. άλλοι γίνονται χρησιμοποιώντας μια τεχνική που ονομάζεται casting.
Αυτόματες μετατροπές σε Java
Η Java μπορεί να μετατρέψει αυτόματα μερικούς πρωτόγονους τύπους σε άλλους και να το κάνει όποτε είναι απαραίτητο. Η παρακάτω εικόνα δείχνει ποιες μετατροπές επιτρέπει η Java. Σημειώστε ότι οι μετατροπές που εμφανίζονται με διακεκομμένα βέλη παρακάτω μπορεί να προκαλέσουν απώλεια κάποιας ακρίβειας της τιμής. Ένα
int
μπορεί να μετατραπεί σε
float
, για παράδειγμα, αλλά οι μεγάλες τιμές
int
δεν θα μετατραπούν ακριβώς επειδή οι τιμές
int
έχουν περισσότερα ψηφία από αυτά που αντιπροσωπεύει ο τύπος
float
.
Κάθε φορά που εκτελείτε μια μαθηματική λειτουργία σε δύο τιμές που δεν είναι του ίδιου τύπου, η Java μετατρέπει αυτόματα έναν από αυτούς στον τύπο του άλλου. Εδώ είναι οι κανόνες που ακολουθεί το Java όταν κάνει αυτή τη μετατροπή:
- Εάν μία από τις τιμές είναι
διπλό
, η άλλη τιμή μετατρέπεται σεδιπλό
. - Εάν δεν υπάρχει
διπλό
αλλά το ένα είναιfloat
, το άλλο μετατρέπεται σεfloat
. - Εάν δεν υπάρχει ούτε
διπλό
ούτεεπιπλέων
αλλά έναμήκος
, το άλλο μετατρέπεται σεμακρύ
. - Εάν όλα τα άλλα αποτύχουν, και οι δύο τιμές μετατρέπονται σε
int
.
Η χύτευση τύπων
Η μετάδοση είναι παρόμοια με τη μετατροπή, αλλά δεν γίνεται αυτόματα. Αν θέλετε να μετατρέψετε ένα
διπλό
σε
int
, για παράδειγμα, πρέπει να χρησιμοποιήσετε τη μετάδοση.
Όταν χρησιμοποιείτε χύτευση, κινδυνεύετε να χάσετε πληροφορίες. Ένα
διπλό
μπορεί να κρατήσει μεγαλύτερους αριθμούς από ένα
int
, για παράδειγμα. Επιπλέον, ένα
int
δεν μπορεί να κρατήσει το κλασματικό τμήμα ενός
διπλό
. Ως αποτέλεσμα, εάν μεταδώσετε
διπλό
σε
int
, διατρέχετε τον κίνδυνο απώλειας δεδομένων ή ακρίβειας
3. 1415
γίνεται, για παράδειγμα,
3
.
int iPi;
iPi = (int) pi.
Σημειώστε ότι το κλασματικό μέρος ενός διπλού απλά απορρίπτεται όταν μεταδίδεται σε έναν ακέραιο αριθμό. δεν είναι στρογγυλεμένο. Για παράδειγμα:
διπλή τιμή = 9. 99;
int iPrice = (int) τιμή.
Εδώ
iPrice
αποδίδεται η τιμή
9
.Αν θέλετε να στρογγυλοποιήσετε τη διπλή τιμή όταν την μετατρέπετε, χρησιμοποιήστε τη μέθοδο
γύρο
της κατηγορίας
Math
.