1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
   |  
#include <math.h>
double Roundn(double dValue,int nDecimales)
{   
   double ad[6]={1.,10.,100.,1000.,10000.,100000.};
 
   if (nDecimales<0 || dValue==0.) return(dValue);      
   double dSeuil =(dValue<0.?-.5:.5);
   double dPrec=0.;
   if(nDecimales>=0 && nDecimales<=5) dPrec=ad[nDecimales];
   else
   {
        dPrec=ad[5];         
        for(int i=1;i<nDecimales-4;i++) dPrec*=10.;
        dPrec=floor(dPrec);
   }
   double dCalc = (((dValue*dPrec)+dSeuil));
 
   if(dValue<0.)
      return(ceil(dCalc)/dPrec);
   else      
      return(floor(dCalc)/dPrec);
} 
d=Roundn(1.1235,3); // donne 1.124 |