Αρ

Αριθμοί σε Swift

1 άσκηση

Σχετικά με την έννοια Αριθμοί

Αριθμοί

Η Swift παρέχει δύο βασικές κατηγορίες αριθμών: τους ακέραιους και τους αριθμούς κινητής υποδιαστολής.

Μπορείς να βάλεις κάτω παύλες μέσα στα αριθμητικά λεκτικά για να βελτιώσεις την αναγνωσιμότητα: το 1_000_000 είναι ίδιο με το 1000000. Τα λεκτικά κινητής υποδιαστολής μπορούν να γραφτούν σε δεκαδική ή σε εκθετική μορφή.

Στις περισσότερες περιπτώσεις, χρησιμοποιείς το Int για τους ακέραιους και το Double για τους αριθμούς κινητής υποδιαστολής:

let speed: Int = 42                           // Explicit Int
let pi: Double = 3.14                         // Explicit Double
let giga: Double = 1_000_000_000              // Double with readability underscores
let plancksConstant: Double = 6.62607015e-34  // Double in scientific notation

Αριθμητικοί τελεστές

Η Swift παρέχει τους καθιερωμένους αριθμητικούς τελεστές για αριθμητικούς υπολογισμούς:

Τελεστής Περιγραφή Παράδειγμα
+ Πρόσθεση 4 + 6 δίνει ως αποτέλεσμα 10
- Αφαίρεση 15 - 10 δίνει ως αποτέλεσμα 5
* Πολλαπλασιασμός 2 * 3 δίνει ως αποτέλεσμα 6
Caution

Η Swift είναι ασφαλής ως προς τους τύπους και δεν επιτρέπει την ανάμιξη διαφορετικών αριθμητικών τύπων σε αριθμητικές πράξεις. Δεν μπορείς να προσθέσεις ή να πολλαπλασιάσεις απευθείας ένα Int και ένα Double. Πρέπει πρώτα να μετατρέψεις τον έναν τύπο ώστε να ταιριάζει με τον άλλο.

Διαίρεση

Ο τελεστής / εκτελεί διαίρεση. Όταν και τα δύο ορίσματα είναι ακέραιοι, η ακέραια διαίρεση αποκόπτει τυχόν κλασματικό υπόλοιπο:

5.0 / 2.0 // 2.5 (Double division)
5 / 2     // 2 (integer division truncates the remainder)

Η διαίρεση ενός μη μηδενικού αριθμού κινητής υποδιαστολής με το μηδέν δίνει inf ή -inf. Η διαίρεση του 0.0 με το 0.0 παράγει nan (όχι αριθμός). Αντίθετα, η διαίρεση ενός ακέραιου με το μηδέν προκαλεί σφάλμα κατά τη μεταγλώττιση ή κατά την εκτέλεση:

print(5.0 / 0.0)  // Prints inf
print(-5.0 / 0.0) // Prints -inf
print(0.0 / 0.0)  // Prints nan

// The following line will not compile:
// print(5 / 0) // Error: Division by zero

Τελεστής υπολοίπου

Ο τελεστής υπολοίπου (%) υπολογίζει το υπόλοιπο που μένει αφού διαιρέσεις δύο ακέραιους:

5 % 2  // 1
-5 % 2 // -1

// Dividing by zero produces an error:
// 5 % 0 // Error: Division by zero
Note

Στη Swift, το % είναι ένας γνήσιος τελεστής υπολοίπου και όχι τελεστής modulo. Το αποτέλεσμα παίρνει πάντα το πρόσημο του πρώτου ορίσματος (του διαιρετέου), ανεξάρτητα από το πρόσημο του δεύτερου ορίσματος:

5 % -2  // 1
-5 % 2  // -1

Στρογγυλοποίηση αριθμών κινητής υποδιαστολής

Μπορείς να στρογγυλοποιήσεις έναν αριθμό κινητής υποδιαστολής με τη μέθοδο rounded(). Από προεπιλογή, η rounded() στρογγυλοποιεί στον πλησιέστερο ακέραιο. Μπορείς επίσης να ορίσεις έναν συγκεκριμένο κανόνα στρογγυλοποίησης, όπως .up ή .down:

let x = 3.14
let y = x.rounded()      // 3.0
let w = x.rounded(.down) // 3.0
let z = x.rounded(.up)   // 4.0

Εξαγωγή τύπου

Όταν δηλώνεις μια αριθμητική σταθερά ή μεταβλητή χωρίς επισημείωση τύπου, η Swift συμπεραίνει τον τύπο της:

  • Οι ακέραιοι αριθμοί έχουν εξ ορισμού τύπο Int.
  • Οι αριθμοί με δεκαδική τελεία έχουν εξ ορισμού τύπο Double.
let x = 42         // Inferred as Int
let y = 42.0       // Inferred as Double
let z: Double = 42 // Explicitly typed as Double

Μετατροπή τύπου

Για να κάνεις πράξεις ανάμεσα σε τιμές διαφορετικών τύπων, μετέτρεψε τη μία τιμή χρησιμοποιώντας αρχικοποιητές τύπου όπως Double(_:) ή Int(_:):

let integerCount = 42
let floatingCount = Double(integerCount)
print(floatingCount) // Prints 42.0

let pi = 3.14
let integerPi = Int(pi)
print(integerPi) // Prints 3 (fractional part is truncated)
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα

Μάθε την έννοια Αριθμοί