Η συνάρτηση γύρου () επιστρέφει έναν αριθμό κινητής υποδιαστολής που στρογγυλοποιείται στον καθορισμένο αριθμό δεκαδικών.
Η σύνταξη της round()
συνάρτησης είναι:
στρογγυλό (αριθμός, ψηφία)
στρογγυλές () παράμετροι
Η round()
συνάρτηση παίρνει δύο παραμέτρους:
- αριθμός - ο αριθμός που θα στρογγυλοποιηθεί
- ndigits (προαιρετικά) - αριθμός στον οποίο στρογγυλοποιείται ο συγκεκριμένος αριθμός. προεπιλογές στο 0
Τιμή επιστροφής από γύρο ()
- Εάν
ndigits
δεν παρέχεται,round()
επιστρέφει τον πλησιέστερο ακέραιο στον δεδομένο αριθμό. - Εάν
ndigits
δοθεί,round()
επιστρέφει τον αριθμό στρογγυλεμένο σταndigits
ψηφία.
Παράδειγμα 1: Πώς λειτουργεί το γύρο () στο Python;
# for integers print(round(10)) # for floating point print(round(10.7)) # even choice print(round(5.5))
Παραγωγή
10 11 6
Παράδειγμα 2: Στρογγυλοποιήστε έναν αριθμό στον δεδομένο αριθμό δεκαδικών ψηφίων
print(round(2.665, 2)) print(round(2.675, 2))
Παραγωγή
2.67 2.67
Σημείωση : Η συμπεριφορά round()
για πλωτήρες μπορεί να είναι εκπληκτική. Η ειδοποίηση round(2.675, 2)
δίνει 2.67
αντί του αναμενόμενου 2.68
. Αυτό δεν είναι σφάλμα: είναι αποτέλεσμα του γεγονότος ότι τα περισσότερα δεκαδικά κλάσματα δεν μπορούν να αναπαρασταθούν ακριβώς ως float.
Όταν το δεκαδικό 2.675
μετατρέπεται σε δυαδικό αριθμό κινητής υποδιαστολής, αντικαθίσταται και πάλι με δυαδική προσέγγιση, της οποίας η ακριβής τιμή είναι:
2.67499999999999982236431605997495353221893310546875
Λόγω αυτού, στρογγυλοποιείται στο 2,67.
Εάν βρίσκεστε σε κατάσταση όπου απαιτείται αυτή η ακρίβεια, σκεφτείτε να χρησιμοποιήσετε τη decimal
μονάδα, η οποία έχει σχεδιαστεί για αριθμητική κινητής υποδιαστολής:
from decimal import Decimal # normal float num = 2.675 print(round(num, 2)) # using decimal.Decimal (passed float as string for precision) num = Decimal('2.675') print(round(num, 2))
Παραγωγή
2.67 2.68