Γύρος Python ()

Η συνάρτηση γύρου () επιστρέφει έναν αριθμό κινητής υποδιαστολής που στρογγυλοποιείται στον καθορισμένο αριθμό δεκαδικών.

Η σύνταξη της 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

ενδιαφέροντα άρθρα...