Menu
Coddy logo textTech

Type Casting Teil 1

Teil des Abschnitts Grundlagen der C++-Journey von Coddy — Lektion 14 von 74.

Type Casting ist der Prozess der Umwandlung eines Wertes von einem Datentyp in einen anderen.

In C++ können wir Integers in Doubles umwandeln, Doubles in Integers und mehr. Es gibt zwei Arten des Castings: implizites (automatisches) und explizites (manuelles) Casting.

Zum Beispiel Integer to Double:

Implizite (automatische) Typumwandlung:

int number = 5;
double decimal = number; // wird automatisch zu 5.0

// mit Berechnung
int x = 7;
double result = x / 2.0; // Ergebnis ist 3.5

Hinweis: Beim Dividieren von zwei int-Werten führt C++ eine Ganzzahldivision durch — der Nachkommateil wird verworfen. Zum Beispiel ergibt 7 / 2 den Wert 3, nicht 3.5. Um ein Dezimalergebnis zu erhalten, muss mindestens ein Operand ein double sein (z. B. ergibt 7 / 2.0 den Wert 3.5).

Explizites (manuelles) Casting Double to Integer:

double decimal = 9.7;
int number = (int) decimal;  // wird zu 9 (Nachkommastellen werden abgeschnitten)

// mit Berechnung
double price = 19.99;
int roundedPrice = (int) price;  // wird zu 19

Bevorzugter moderner C++-Stil: Anstelle des Casts im C-Stil (int) decimal ist es bessere Praxis, static_cast<>() zu verwenden, was sicherer ist und Ihre Absicht deutlicher zum Ausdruck bringt:

double decimal = 9.7;
int number = static_cast<int>(decimal);  // wird zu 9 (Nachkommastellen werden abgeschnitten)

double price = 19.99;
int roundedPrice = static_cast<int>(price);  // wird zu 19

Hinweis: Sowohl (int) value als auch static_cast<int>(value) liefern hier das gleiche Ergebnis, aber static_cast<>() ist der empfohlene Ansatz in modernem C++, da es die Konvertierung deutlich sichtbar macht und vom Compiler geprüft wird.

challenge icon

Aufgabe

Anfänger

Schreibe ein C++-Programm, das Type Casting demonstriert. Führe Folgendes aus:

Caste die Variable price in einen int und speichere das Ergebnis in einer neuen Variable namens intPrice.

Spickzettel

Type Casting konvertiert Werte von einem Datentyp in einen anderen.

Implizites (automatisches) Casting — geschieht automatisch:

int number = 5;
double decimal = number; // wird automatisch zu 5.0

int x = 7;
double result = x / 2.0; // Ergebnis ist 3.5 (int/int verwirft Dezimalstellen)

Explizites (manuelles) Casting — C-Stil und modernes static_cast:

double price = 19.99;

int a = (int) price;                  // C-Stil: wird zu 19
int b = static_cast<int>(price);     // modernes C++ bevorzugt: wird zu 19

Hinweis: Das Casting eines double in einen int schneidet den Dezimalteil ab (verwirft ihn). static_cast<>() wird in modernem C++ aufgrund der Klarheit und Compilersicherheit bevorzugt.

Probier es selbst

#include <iostream>

int main() {
    // Variablen deklarieren und initialisieren
    double price = 99.99;
    int intPrice = ?; // Explizite Typumwandlung von double zu int
    
    
    // Werte ausgeben
    std::cout << "Price: " << price << std::endl;
    std::cout << "Int Price: " << intPrice << std::endl;
    
    return 0;
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen