Βασική διαφορά – float vs double
Στον προγραμματισμό, απαιτείται η αποθήκευση δεδομένων. Τα δεδομένα αποθηκεύονται στη μνήμη. Οι θέσεις μνήμης που αποθηκεύουν δεδομένα ονομάζονται μεταβλητές. Κάθε θέση μνήμης μπορεί να αποθηκεύσει έναν συγκεκριμένο τύπο δεδομένων. Το μέγεθος της μνήμης για κάθε τύπο δεδομένων είναι διαφορετικό. Σε γλώσσες προγραμματισμού όπως η Python, ο προγραμματιστής δεν χρειάζεται να δηλώσει τον τύπο της μεταβλητής. Σε γλώσσες προγραμματισμού όπως η Java, ο προγραμματιστής πρέπει να δηλώσει τον τύπο της μεταβλητής. Υπάρχει ένας αριθμός τύπων δεδομένων όπως char, int, float και double. Ο τύπος δεδομένων char χρησιμοποιείται για την αποθήκευση μιας τιμής μεμονωμένου χαρακτήρα. Ο τύπος δεδομένων int χρησιμοποιείται για την αποθήκευση αριθμητικών τιμών χωρίς δεκαδικά ψηφία. Οι τύποι δεδομένων float και double χρησιμοποιούνται για την αποθήκευση αριθμητικών τιμών με δεκαδικά ψηφία. Αυτό το άρθρο εξετάζει τη διαφορά μεταξύ float και double. Η βασική διαφορά μεταξύ float και double είναι ότι το float είναι ένας τύπος δεδομένων κινητής υποδιαστολής IEEE 754 32 bit μονής ακρίβειας, ενώ το double είναι ένας τύπος δεδομένων κινητής υποδιαστολής IEEE 754 64 bit διπλής ακρίβειας.
Τι είναι το float;
Το float είναι μια ενιαία κινητή υποδιαστολή 32-bit ακριβείας. Είναι προκαθορισμένος τύπος δεδομένων που υποστηρίζεται από γλώσσες προγραμματισμού όπως η Java. Για να δηλώσετε μια μεταβλητή float, χρησιμοποιείται η λέξη-κλειδί «float». Επομένως, δεν μπορεί να χρησιμοποιηθεί για ονόματα αναγνωριστικών, όπως ονόματα μεθόδων και ονόματα μεταβλητών. Ανατρέξτε στο παρακάτω πρόγραμμα.
Εικόνα 01: Πρόγραμμα Java με τύπο δεδομένων float
Σύμφωνα με το παραπάνω πρόγραμμα, ο αριθμός είναι μια μεταβλητή που μπορεί να αποθηκεύσει έναν αριθμό κινητής υποδιαστολής. Εδώ, χρησιμοποιείται -20,5f αντί για -20,5. Το -20,5 είναι διπλό κυριολεκτικό. Για να υποδείξει τον μεταγλωττιστή για αποθήκευση της τιμής ως float, ο προγραμματιστής θα πρέπει να γράψει f ή F.
Τι είναι το διπλό;
Το διπλό είναι μια κινητή υποδιαστολή 64-bit διπλής ακρίβειας. Είναι ένας προκαθορισμένος τύπος δεδομένων. Για να δηλώσετε μια διπλή μεταβλητή, χρησιμοποιείται η λέξη-κλειδί «διπλή». Επομένως, δεν μπορεί να χρησιμοποιηθεί για ονόματα αναγνωριστικών, όπως ονόματα μεθόδων και ονόματα μεταβλητών. Ανατρέξτε στο παρακάτω πρόγραμμα.
Εικόνα 02: Πρόγραμμα Java με διπλό τύπο δεδομένων
Σύμφωνα με το παραπάνω πρόγραμμα, ο αριθμός είναι μια μεταβλητή τύπου double. Η εκτύπωση του αριθμού θα δώσει την έξοδο ως -20,5. Χρειάζονται 64 bit στη μνήμη για την αποθήκευση της τιμής. Εάν ο προγραμματιστής είναι γραμμένος -20,5, θεωρείται διπλός. Μπορεί επίσης να το γράψει ως -20,5d. Η γραφή «d» είναι προαιρετική.
Η μετάδοση τύπου μπορεί να πραγματοποιηθεί σε τύπους δεδομένων. Είναι η διαδικασία μετατροπής ενός τύπου δεδομένων σε έναν άλλο τύπο δεδομένων. Όταν εκχωρείτε έναν μικρότερο τύπο δεδομένων σε έναν μεγαλύτερο τύπο δεδομένων, δεν απαιτείται μετάδοση. Η διεύρυνση γίνεται σε byte, short, int, long, float, διπλή σειρά. Όταν αντιστοιχίζετε έναν μεγαλύτερο τύπο δεδομένων σε έναν μικρό τύπο δεδομένων, είναι απαραίτητο να κάνετε τη μετάδοση.
Εικόνα 03: Casting
Σύμφωνα με το παραπάνω πρόγραμμα, το num1 και το num2 έχουν τύπους δεδομένων float. Το άθροισμα εκχωρείται στη μεταβλητή άθροισμα. Είναι πλωτήρας. Καθώς το float είναι ένας μικρότερος τύπος δεδομένων σε σύγκριση με τον διπλό, μπορεί να αντιστοιχιστεί απευθείας στον αριθμό διπλής μεταβλητής χωρίς casting τύπου.
Το x και το y μπορούν να αποθηκεύσουν διπλούς τύπους δεδομένων. Η άθροιση εκχωρείται στη μεταβλητή z. Μπορεί επίσης να αποθηκεύσει διπλό. Απαιτείται μετάδοση τύπου για την εκχώρηση μεγαλύτερου τύπου δεδομένων σε μικρότερο τύπο δεδομένων. Επομένως, για να αποθηκεύσετε τη διπλή τιμή σε μια μεταβλητή float, είναι απαραίτητο να κάνετε casting τύπου επειδή το double είναι μεγαλύτερος τύπος δεδομένων από το float.
Ποιες είναι οι ομοιότητες μεταξύ float και double;
- Τόσο το float όσο και το double είναι προκαθορισμένοι τύποι δεδομένων που υποστηρίζονται από γλώσσες προγραμματισμού όπως η Java.
- Και οι δύο τύποι float και double δεν χρησιμοποιούνται για ακρίβεια όπως το νόμισμα.
Ποια είναι η διαφορά μεταξύ float και double;
float vs double |
|
Το float είναι ένας τύπος δεδομένων κινητής υποδιαστολής IEEE 754 ακριβείας 32 bit. | Το διπλό είναι τύπος δεδομένων κινητής υποδιαστολής IEEE 754 διπλής ακρίβειας 64 bit. |
Αριθμός byte | |
Το float έχει μήκος 4 byte. | Το διπλό έχει μήκος 8 byte. |
Προεπιλεγμένες τιμές | |
Η προεπιλεγμένη τιμή του float είναι 0,0f. | Η προεπιλεγμένη τιμή του double είναι 0,0d. |
Λέξη-κλειδί | |
Η λέξη-κλειδί "float" χρησιμοποιείται για να δηλώσει μια κινητή τιμή. | Η λέξη-κλειδί "διπλό" χρησιμοποιείται για να δηλώσει μια διπλή τιμή. |
Απαιτούμενη μνήμη | |
Το float απαιτεί λιγότερη μνήμη από το διπλάσιο. | Το διπλό απαιτεί περισσότερη μνήμη από το float. |
Σύνοψη – float vs double
Στον προγραμματισμό, είναι απαραίτητη η αποθήκευση δεδομένων. Αυτά τα δεδομένα αποθηκεύονται σε θέσεις μνήμης και ονομάζονται μεταβλητές. Κάθε μεταβλητή αποθηκεύει δεδομένα συγκεκριμένου τύπου. Υπάρχουν τύποι δεδομένων όπως int, char, double και float κ.λπ. Αυτό το άρθρο εξέτασε τη διαφορά μεταξύ δύο τύπων δεδομένων που είναι float και double. Η διαφορά μεταξύ float και double είναι ότι το float είναι ένας τύπος δεδομένων, ο οποίος είναι κινητής υποδιαστολής IEEE 754 μονής ακρίβειας 32 bit ενώ το double είναι ένας τύπος δεδομένων, ο οποίος είναι κινητής υποδιαστολής 64 bit IEEE 754 διπλής ακρίβειας.