Frage zu zwei Varianten der Zahlenkonvertierung



  • Hallo!
    Ich schreibe an einer Klasse, die mit sehr großen Zahlen rechnet. Dabei ist der Zuweisungsoperator so überladen, dass einem Objekt meiner Klasse eine Zahl eines elementaren Typs zugewiesen werden kann. Die Objekte meiner Klasse können zudem über std::string initialisiert werden.
    Ich habe jetzt zwei Möglichkeiten gefunden, eine Zahl in einen String umzuwandeln. Welche würdet ihr verwenden? Welche Vor/Nachteile gibt es?

    //Variante 1
    template<typename T> Klasse& operator = (const T& var)
    {
        std::ostringstream Str;
        Str << std::setprecision(400) << var;
        std::string tmp(Str.str());
        return ((*this)=tmp);
    }
    
    //Variante 2
    template<typename T> Klasse& operator = (const T& var)
    {
        std::ostringstream Str;
        Str.precision(400);
        Str << std::fixed << zahl;
        std::string tmp(Str.str());
        return ((*this)=tmp);
    }
    

    Anmerkung: Die große Präzision von 400 verwende ich, um auch wirklich alle Nachkommastellen von zB long double zu berücksichtigen.


Log in to reply