Auf volle Hunderter abrunden



  • Hallo,
    ich suche nach einer Möglichkeit einen float Wert auf volle Hunderter abzurunden:

    a=345899.77 sollte z.B. zu a=345800 werden

    Ist bestimmt superleicht. Bin aber leider blutiger Anfänger

    thx
    G-Kar

    P.S.: Ich benutze Borland C++ Builder 5.0



  • Hallo

    siehe floor

    bis bald
    akari



  • Du kannst dir auch den Umstand zu nutze machen, dass die Nachkommastellen automatisch abgeschnitten werden, wenn man einen float einem int zuweist.



  • G-Kar schrieb:

    a=345899.77 sollte z.B. zu a=345800 werden

    Wenn ich dich richtig verstanden haben soll immer auf 100er abgerundet werden, unabhängig davon ob:

    100n +1 ... 99.

    Keine Ahnung ob folgendes die elegantest Methode ist:

    double a = floor(345899.77/100)*100;
    

    Aber es geht. Für einen ebenfalls blutigen Anfänger schon mal nicht schlecht. Wenn es besser geht, dann wird schon jemand aufschreien. 😉



  • timmix schrieb:

    Keine Ahnung ob folgendes die elegantest Methode ist:

    Würd ich schon sagen, die eleganteste Methode ist immer diejenige, die sich leicht verstehen lässt, funktioniert und schnell ist.



  • Nanyuki schrieb:

    Würd ich schon sagen, die eleganteste Methode ist immer diejenige, die sich leicht verstehen lässt, funktioniert und schnell ist.

    Na, ja! Als Anfänger weiß man aber nie ob es nicht irgendwie was eleganteres, schnelleres, cooleres gibt. Manchmal lese ich Beiträge von Leuten (meist mit etlichen Tausend Beiträgen hier in den Foren) wo mir die Ohren wackeln.

    Da schreiben die irgendwo einen "." hin oder einen "*" (oder noch besser "**") und hier noch ein Klammerpaar und dort eine Fragezeichen-Doppelpunkt-Kombination und schwupps haben die mal eben aus 12 Zeilen Anfängergehirnschmalz einen nerdmäßigen Einzeiler gemacht der so schnell durch den Prozessor flitzt, dass dieser noch nicht mal mitbekommen hat, dass er gerade die Anzahl der Elemtarteilchen in einem Container voller Bleistifte berechnet hat.

    Mein Laptop hat vorne wo mein Kinn immer aufschlägt schon eine Delle, mein Mauspad ist davon mittlerweile gestorben. 😉

    Aber ich habe ein Handtuch - bin also weiterhin gewappnet. 🤡



  • Wie gesagt:

    a = int(a/100)*100;
    

    Keine Ahnung, ob das performancemässig einen Unterschied macht.



  • -edit-


Anmelden zum Antworten