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.5Hinweis: 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 19Bevorzugter 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 19Hinweis: 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.
Aufgabe
AnfängerSchreibe 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
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorInkrement/DekrementPost-Inkrement/DekrementArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Eingabe/Ausgabe Grundlagen
cout-Anweisungcin-AnweisungString-EingabeWiederholung - Bis 120Wiederholung - Wahr oder Falsch3Variablen Teil 2
TypdeklarationNamenskonventionenWiederholung – Variablen initialisierenType Casting Teil 1Type Casting Teil 26Entscheidungsfindung
If-AnweisungIf - ElseSwitch-AnweisungBedingter OperatorWiederholung - If ElseVerschachtelte If - ElseÜbe selbstständig: Online-C++-Compiler