Menu
CoddyTech

Type Casting Teil 1

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

Typumwandlung ist der Vorgang, bei dem ein Wert von einem Datentyp in einen anderen umgewandelt wird.

In C++ können wir Ganzzahlen in Gleitkommazahlen, Gleitkommazahlen in Ganzzahlen und vieles mehr umwandeln. Es gibt zwei Arten der Typumwandlung: implizite (automatische) und explizite (manuelle) Typumwandlung.

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; // result ist 3.5

Hinweis: Wenn zwei int-Werte dividiert werden, führt C++ eine Ganzzahldivision durch: Der Dezimalteil 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).

Explizite (manuelle) Umwandlung Double to Integer:

double decimal = 9.7;
int number = (int) decimal;  // wird zu 9 (der Nachkommateil wird abgeschnitten)

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

Bevorzugter Stil in modernem C++: Statt des C-Style-Casts (int) decimal empfiehlt es sich, static_cast<>() zu verwenden, da dieser sicherer ist und deine Absicht deutlicher macht:

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

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

Hinweis: Sowohl (int) value als auch static_cast<int>(value) erzeugen hier dasselbe Ergebnis, aber static_cast<>() ist in modernem C++ die empfohlene Vorgehensweise, da die Umwandlung dadurch deutlich sichtbar ist und vom Compiler geprüft wird.

challenge icon

Aufgabe

Anfänger

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

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

Probier es selbst

    int intPrice = ?; // Explizite Typumwandlung von double zu int
    
    
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

Übe selbstständig: Online-C++-Compiler