[GELOEST]grossen float/double-wert ohne potenz ausgeben



  • gint es eine Möglichkeit anstatt

    1.23457e+008
    

    folgendes

    123456789
    

    auszugeben?

    Der Wert soll aber noch zu weiteren Rechnungen verwendet werden, außerdem soll die Möglichkeit der Nachkommastellen erhalten bleiben.

    String oder long int etc. sind daher ausgeschlossen.

    mfg manfredkaush



  • manfredkaush schrieb:

    String oder long int etc. sind daher ausgeschlossen.

    du könntest den Wert nur für die Ausgabe in einen long casten (der Inhalt der eigentlichen Variable bleibt dabei erhalten).
    Eine andere Möglichkeit sind stream-manipulatoren



  • Mit welcher Funktion gibst du den Wert überhaupt aus? printf(), cout oder was?



  • Das geht mit dem Manipulator fixed:

    double d = 1.23457e+008;
        cout << fixed << d << endl;
    

    Die Anzahl der Nachkommastellen setzt Du dann mit setprecision fest (erfordert #include <iomanip>) - also z:B.:

    double d = 1.23457e+008;
        cout << fixed << setprecision(2) << d << endl;
    

    Gruß
    Werner



  • pumuckl schrieb:

    du könntest den Wert nur für die Ausgabe in einen long casten

    soweit so gut

    kallpt auch alles nur bei den nachkommastellen gibt es probleme

    123456789.23
    

    wird zu

    123456792
    

    @wxSkip per

    ofstream output(dataname.c_str(),ios_base::out);
    output << floatwert
    

    mit

    output << fixed << setprecision(2) << floatwert
    

    erhalte ich

    123456792.00
    

    mfg manfredkasuh



  • edit:
    habs mit dem stream maipulatoren und double werten probiert

    works fine 😉

    danke!

    mfg manfredkaush

    Lösung:

    #include <iomanip>
    

    ...

    output << fixed << setprecision(2) << double-wert;
    

Anmelden zum Antworten