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.5Hinweis: 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 19Bevorzugter 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 19Hinweis: 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.
Aufgabe
AnfängerSchreibe 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.
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;
}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