Menu
Coddy logo textTech

Type Casting Teil 1

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

Typumwandlung ist der Prozess der Konvertierung eines Werts von einem Datentyp in einen anderen.

In C++ können wir Ganzzahlen in doubles, doubles in Ganzzahlen und 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; // Ergebnis ist 3.5

Hinweis: Beim Dividieren zweier int-Werte führt C++ eine Ganzzahldivision durch: Der Dezimalteil wird verworfen. Zum Beispiel ergibt 7 / 2 3, nicht 3.5. Um ein Dezimalergebnis zu erhalten, muss mindestens einer der Operanden ein double sein (z. B. ergibt 7 / 2.0 3.5).

Explizite (manuelle) Umwandlung von Double to Integer:

double decimal = 9.7;
int number = (int) decimal;  // wird 9 (Dezimalteil wird abgeschnitten)

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

Bevorzugter moderner C++-Stil: Anstelle des C-Style-Casts (int) decimal ist es besser, static_cast<>() zu verwenden, da dies sicherer ist und deine Absicht ausdrücklicher macht:

double decimal = 9.7;
int number = static_cast<int>(decimal);  // wird zu 9 (Dezimalteil 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 der empfohlene Ansatz im modernen C++, da er die Konvertierung deutlich sichtbar macht und vom Compiler überprüft wird.

challenge icon

Aufgabe

Anfänger

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

Wandle die Variable price in einen int um 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
    
    
    // Die 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

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