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.

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