0Pricing
Swift Academy · Lektion

Explizite numerische Konvertierungen

Konvertieren Sie bewusst zwischen numerischen Typen, um Fehler zu vermeiden.

Explizite numerische Konvertierungen ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Swift erfordert explizite Konvertierungen

Swift konvertiert numerische Typen nicht automatisch ineinander. Um ein Int und ein Double zu kombinieren, müssen Sie einen der beiden Typen explizit konvertieren.

let count = 3
let price = 2.5
let total = Double(count) * price
print(total)

Warum es keine implizite Konvertierung gibt

Implizite Konvertierungen können unbemerkt Daten verlieren oder die Bedeutung verändern. Swift zwingt Sie, Ihre Absicht anzugeben, und verhindert so schwer erkennbare Fehler.

let whole = 7
let fraction = 0.5
let result = Double(whole) + fraction
print(result)

Int in Double konvertieren

Schließen Sie eine Ganzzahl in Double(...) ein, um ihre Gleitkommadarstellung zu erhalten. Dies ist vor einer echten Division erforderlich.

let a = 7
let b = 2
let ratio = Double(a) / Double(b)
print(ratio)

Double in Int konvertieren

Int(...) schneidet bei einem Double in Richtung null ab und verwirft den Nachkommateil; es rundet nicht.

let value = 3.99
print(Int(value))
print(Int(-3.99))

Vor der Konvertierung runden

Wenn Sie runden statt abschneiden möchten, rufen Sie zuerst .rounded() auf und konvertieren Sie anschließend in Int.

let value = 3.6
let rounded = Int(value.rounded())
print(rounded)

Zwischen Ganzzahltypen konvertieren

Auch für die Konvertierung zwischen Ganzzahltypen ist eine explizite Konvertierung erforderlich, etwa mit Int(small) oder Int8(big), da sich die Wertebereiche unterscheiden.

let small: Int8 = 100
let big: Int = Int(small)
print(big + 1000)

Überlauf bei der Konvertierung

Die Konvertierung eines Werts, der nicht in den Zieltyp passt, führt zur Laufzeit zu einem Fehler. Überprüfen Sie im Zweifelsfall vorher den Wertebereich.

let n = 200
if n <= Int(Int8.max) {
    print("fits")
} else {
    print("would overflow Int8")
}

Fehlbare numerische Initialisierer

Für manche Konvertierungen werden fehlbare Initialisierer wie Int8(exactly:) verwendet. Sie geben ein Optional zurück und liefern nil, wenn der Wert nicht exakt in den Zieltyp passt.

let ok = Int8(exactly: 100)
let bad = Int8(exactly: 300)
print(ok as Any)
print(bad as Any)

String in eine Zahl konvertieren

Auch die Konvertierung eines String in eine Zahl ist explizit und fehlbar. Sie gibt ein Optional zurück, falls der Text keine gültige Zahl darstellt.

let text = "42"
if let n = Int(text) {
    print("Parsed:", n)
}
print(Int("hello") as Any)

Gemischte numerische Berechnungen kombinieren

Ein typisches Vorgehen: Konvertieren Sie alle Operanden in einen gemeinsamen Typ, führen Sie die Berechnung durch und konvertieren Sie das Endergebnis bei Bedarf zurück.

let items = 5
let pricePerItem = 1.99
let total = Double(items) * pricePerItem
let rounded = (total * 100).rounded() / 100
print("Total:", rounded)

Konvertierungen machen Code sicherer

Explizite Konvertierungen dokumentieren, an welchen Stellen sich die Genauigkeit ändert. Dadurch lässt sich numerischer Code leichter überprüfen und nachvollziehen.

let measured = 9.81
let asInt = Int(measured)
let backToDouble = Double(asInt)
print(measured, asInt, backToDouble)

Kurztest

Sagen Sie das Ergebnis der Konvertierung eines Double in Int voraus.

Zusammenfassung: Explizite numerische Konvertierungen

Sie haben gelernt, dass Swift numerische Typen niemals implizit konvertiert, dass Int(...) Doubles abschneidet, während Double(...) Ints erweitert, und dass fehlbare Initialisierer wie Int8(exactly:) und Int("text") Optionals zurückgeben, wenn eine Konvertierung nicht möglich ist.

let pieces = 7
let share = Double(pieces) / 2.0
print("Share:", share)
print("Truncated:", Int(share))

Häufig gestellte Fragen

Ist die Lektion „Explizite numerische Konvertierungen“ kostenlos?

Ja — der vollständige Text von „Explizite numerische Konvertierungen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Explizite numerische Konvertierungen“?

Konvertieren Sie bewusst zwischen numerischen Typen, um Fehler zu vermeiden. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Explizite numerische Konvertierungen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Ganzzahltypen und ihre Wertebereiche
  2. Gleitkommazahlen: Double und Float
  3. Explizite numerische Konvertierungen
  4. Numerische Literale und Unterstriche
← Zurück zu Swift Academy