problem mit runden von float



  • Hallo!

    Ich schreibe immer noch an meinem Programm und habe jetzt folgendes Problem: Für die Ausgabe in eine Datei habe ich eine floatzahl. Ich möchte diese Floatzahl in die Datei schreiben. Dafür sind 6 Stellen vorgesehen. Nun kann der Wert auch negativ werden und außerdem soll er immer linksbündig, mit einem Punkt und Nullen, nach rechts aufgefüllt werden. Das Problem ist, daß ich keine Funktion finde, die das macht. Mit setprecision kann ich die Ausgabe zwar steuern, allerdings bekomme ich dann das Auffüllen nicht hin.Gibt es eine fertige Funktion, die dieses Auffüllen übernimmt, oder muß ich mir da selbst was schreiben?

    Besten Dank!



  • du könntest die floats vorher mit sprintf in einen string umwandeln



  • Hm, wie hätten wirs denn gerne? So in etwa:

    cout.setf(ios::fixed);cout.precision(6);
    cout<<1452.12365478965;    //sollte meines Erachtens 1452.123654 ergeben
    cout<<1452;                               //sollte meines Erachtens 1452.000000 ergeben
    

    /edit:oder so?

    cout.width(6);cout.fill('0');
    cout<<123;                                 //sollte 000123 ergeben
    

    Musst halt ein bisschen experimentieren...



  • oder:

    std::setfill()
    


  • Danke für die schnelle Hilfe. Ich denke mit fixed hätte ich das Problem lösen können, allerdings hat sich rausgestellt, daß es dem Zieldateiformat reicht, wenn man die Zahlen nicht auffüllt. Also noch einfacher.


Anmelden zum Antworten