C++-Programmierung/ Brüche/ Umwandlung in andere Datentypen

Aus Wikibooks


In diesem Kapitel werden wir unseren Bruch in Gleitkommazahlen umwandeln. Hierfür müssen wir einfach den Zähler durch den Nenner teilen. Da jedoch beide einen integralen Typ haben, müssen wir vor dem Teilen einen der Werte in eine Gleitkommazahl umwandeln, damit keine Ganzzahldivision durchgeführt wird. Bei Ganzzahldivisionen würden natürlich die Nachkommastellen abgeschnitten.

class Bruch{
public:
// ...
    operator float()      {return static_cast<float>(zaehler_) / nenner_;}
    operator double()     {return static_cast<double>(zaehler_) / nenner_;}
    operator long double(){return static_cast<long double>(zaehler_) / nenner_;}
// ...
};

Sie können den Bruch jetzt auf die folgende Weise in eine Gleitkommazahl umwandeln:

#include <iostream>

// Alles was zur Bruch-Klasse gehört

int main(){
    std::cout << static_cast<double>(Bruch(1, 8));
}
Ausgabe:
0.125

Das Kapitel Casts enthält weitergehende Informationen zur Umwandlung von Datentypen.