Za

Zahlen in Swift

1 Übung

Über Zahlen

Zahlen

Swift bietet zwei Hauptkategorien von Zahlen: Ganzzahlen und Gleitkommazahlen.

  • Ganzzahlen stehen für ganze Zahlen ohne Nachkommanteil, wie 0, 1, -1, 42 und -273.
  • Gleitkommazahlen stehen für Zahlen mit einem Nachkommanteil, wie 0.0, 3.14 und -1.36969e-10.

Du kannst Unterstriche in numerische Literale einfügen, um die Lesbarkeit zu verbessern: 1_000_000 ist identisch mit 1000000. Gleitkomma-Literale kannst du in Dezimal- oder Exponentialschreibweise schreiben.

In den meisten Fällen verwendest du Int für Ganzzahlen und Double für Gleitkommazahlen:

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

Arithmetische Operatoren

Swift bietet die üblichen arithmetischen Operatoren für numerische Berechnungen:

Operator Beschreibung Beispiel
+ Addition 4 + 6 ergibt 10
- Subtraktion 15 - 10 ergibt 5
* Multiplikation 2 * 3 ergibt 6
Caution

Swift ist typsicher und erlaubt es nicht, verschiedene numerische Typen in arithmetischen Operationen zu mischen. Du kannst einen Int und einen Double nicht direkt addieren oder multiplizieren; du musst zuerst einen der Typen umwandeln, damit er zu dem anderen passt.

Division

Der Operator / führt eine Division durch. Wenn beide Operanden Ganzzahlen sind, schneidet die Ganzzahldivision einen möglichen Bruchrest ab:

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

Wenn du eine Gleitkommazahl ungleich null durch null teilst, erhältst du inf oder -inf. Eine Division von 0.0 durch 0.0 ergibt nan (Not a Number). Im Gegensatz dazu führt eine Division einer Ganzzahl durch null zu einem Fehler beim Kompilieren oder zur Laufzeit:

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

Restoperator

Der Restoperator (%) berechnet den Rest, der beim Teilen zweier Ganzzahlen übrig bleibt:

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

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

In Swift ist % ein echter Rest-Operator und kein Modulo-Operator. Das Ergebnis trägt immer das Vorzeichen des ersten Operanden (des Dividenden), unabhängig vom Vorzeichen des zweiten Operanden:

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

Gleitkommazahlen runden

Du kannst eine Gleitkommazahl mit der Methode rounded() runden. Standardmäßig rundet rounded() auf die nächste Ganzzahl. Du kannst auch eine bestimmte Rundungsregel angeben, wie .up oder .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

Typinferenz

Wenn du eine numerische Konstante oder Variable ohne Typangabe deklarierst, leitet Swift ihren Typ ab:

  • Ganze Zahlen sind standardmäßig Int.
  • Zahlen mit einem Dezimalpunkt sind standardmäßig Double.
let x = 42         // Inferred as Int
let y = 42.0       // Inferred as Double
let z: Double = 42 // Explicitly typed as Double

Typumwandlung

Um Operationen zwischen Werten unterschiedlicher Typen auszuführen, wandelst du einen Wert mit Typinitialisierern wie Double(_:) oder Int(_:) um:

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)
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne Zahlen