runden bzw. integer auf Stellen aufspalten



  • Hallo,

    wie man Nachkommerstellen rundet weiss ich, allerdings will ich anders runden.

    4 auf 0 oder 5 auf 10
    dem entsprechend
    94 auf 90 oder 95 auf 100

    Also eine gröbere Rundung so zu sagen.
    Gibt es dafür nen BEfehl oder muss ich mir dafür selbst ne Funktion schreiben ?
    Wenn ja, dann wie kann ich eine Integer in seine einzelnen Stellen aufteilen?

    Danke
    Mischu



  • Selbst ist der mann...

    mfg JJ



  • machmal hilft es schon selbst nachzudenken.

    int abweichung=97;
    double zwischenspeicher=floor((abweichung/10))*10;
    abweichung= (int) zwischenspeicher;

    -----------

    Hiermit wäre meine Frage wohl gelöst aber mir ist eines aufgefallen.

    Ich will doch nicht auf die jeweiligen 10er runden sondern auch 5er schritte haben.

    es sollen also nicht nur 10,20,30 etc. vorkommen sondern auch 15,25,35.

    Wie geht das nun wieder ?

    Danke



  • Ich habe dir da mal eine Funktion geschrieben, mit main zum testen:

    #include <iostream>
    using namespace std;
    
    void runden(int * z, int s){
    	int tmp = (*z)%s;
    	if(tmp<s/2)(*z)=(*z)-tmp;
    	else (*z)=(*z)+(s-tmp);
    }
    
    int main(){
    	int zahl;
    	cin>>zahl;
    	runden(&zahl, 5);
    	cout<<zahl<<endl;
    	return 0;
    }
    


  • Danke für die schnelle Antwort und das gewollte Ergebnis - es klappt perfekt.
    Danke

    Mischu


Anmelden zum Antworten