Double: Auf und Abrunden



  • Hi,

    könnte mir jemand sagen wie man eine Gleitkommazahl auf und abrunden kann. Ich hab zwar die Methode

    double ceil(double)

    gefunden, jedoch rundet sie ganz d.h. 3,989 zu 4,00. Ich möchte jedoch 3,989 zu 3,99 aufrunden bzw. 3,984 zu 3,98 abrunden. Hab leider die dazugehörige funktion bis jetzt leider nirgends gefunden.

    Kleine HILFE BIDDDÄ 😉

    Thx



  • double CHilfe::runden(double Zahl, int Nachkommastelle)
    {	
    	int zehnerstelle;		
    	int itemp;
    	switch(Nachkommastelle)
    	{
    		case(1):
    			zehnerstelle = 10;
    			break;
    		case(2):
    			zehnerstelle = 100;
    			break;
    		case(3):
    			zehnerstelle = 1000;
    			break;
    		case(4):
    			zehnerstelle = 10000;
    			break;
    		case(5):
    			zehnerstelle = 100000;
    			break;
    		case(6):
    			zehnerstelle = 1000000;
    			break;
    		case(7):
    			zehnerstelle = 10000000;
    			break;
    		case(8):
    			zehnerstelle = 100000000;
    			break;
    		case(9):
    			zehnerstelle = 1000000000;
    			break;
    
    	}
    
    	Zahl *= zehnerstelle;
    	itemp = (int) Zahl;	
    	if(Zahl - itemp >= 0.5)
    	itemp += 1;
    	return (double) itemp/zehnerstelle;
    }
    

    Geht wahrscheinlich noch einfacher, aber es funzt?

    MfG
    Chris



  • schau mal im ansic oder c++ faq, da war ein beitrag dazu.



  • vielen dank...

    Die Lösung im FAQ bereich war kürzer und leichter ;).

    Erstaunlich das die Funktion nicht standardmässig gibt 👎



  • Im Prinzip musst Du nur mit 100 multiplizieren, das Ergebnis runden lassen und wieder durch 100 dividieren.


Anmelden zum Antworten