Runden von Werten



  • Hakko @ All!

    Kann mir einer von euch sagen wie ich Werte runden kann?

    Z.B.: 5,12498657532146598 soll auf zwei nachkomma stellen gerundet werden.



  • Hi,

    wie möchtest Du das denn runden. Wenn es bei der Ausgabe reicht dann ist printf eine gute Lösung.

    [cpp]

    printf("%5.2f",5.123456789);
    [/cpp]

    wobei die 5 die gesamtfeldbreite Darstellt, und die 2 die Nachkommastellen angibt.



  • so gehts auch:

    float f = floor(5,12498657532146598*100)/100;

    generell kann man sagen:

    float f = floor(a_float*square(10, n_stellen)) / n_stellen;

    cu todo



  • Oder mit ...

    double f = 1234.123456789;
    cout.setf(ios::fixed, ios::floatfield);
    cout.precision(4);  //4 Nachkommestellen
    cout << f << endl;
    

    Ersetzt du fixed durch scientific wir die zahl durch zehnerpotenzen angezeigt
    Bsp. : 123.3e+03

    Lässt du oben alles weg und schreibst nur cout.precision(4);
    dann wird die gesamte Zahl auf 4 stellen begrenzt, das heißt vor und nach
    dem Komma.
    Bsp.: 12.342 wird zu 12.34 | 1234.3356 wird zu 1234



  • HI c-mos!

    wenn ich das nach deiner Variante schreibe bekomme ich bei allen Zahlen die vor dem nächsten endl stehen diese Form,dieses wollte ich aber nicht und wenn ich es mir printf schreiben kann ich die ausgabe nicht mehr mit cout<<setw(15) formatieren.



  • Wie wärs, wenn du es wieder rückgängig machst?

    double f = 1234.123456789;
    
    ...
    
    // Einstellen des gewünschten Formats:
    cout.setf ( ios::fixed );
    cout.precision ( 4 );
    
    //
    // Ausgaben mit der eingestellten Form
    //
    
    // Einstellen des Standard-Formats:
    cout.setf ( ios::scientific );
    cout.precision ( 6 );
    

    BTW: Was erreicht man mit ios::floatfield?

    MfG SideWinder



  • BTW: Wie wärs mit verschieben ins C++ Forum? 😡



  • BTW: Was erreicht man mit ios::floatfield?

    ios::floatfield ist die Maske in der man scientific oder fixed setzt.

    Warum benutzt ihr nicht einfach die Manipulatoren?



  • BTW: Wie wärs mit verschieben ins C++ Forum?

    Darum kümmert sich der Moderator, welcher allerdings den richtigen Button dafür nicht finden kann :(.

    MfG SideWinder


Anmelden zum Antworten