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