-
ok I understand.
If you want an inline approach, this is the way:
double y=(int)(x*100.0)/100.0;
you power the radix by -decimal (a negative decimal gives precision lower than 1. Note the floating point division.
for variable radix or amount of decimals you can use this generic expression:
double z;
int r=10,d=2;
double y=(int)(x*(z=pow(r,d)))/z;
-
Here is another way, Kedaman's is more succinct
Code:
double roundup2(double f){
double tmp;
char t[20];
char *stopstr;
tmp= 5 * pow(10,-3. );
tmp += f;
memset(t,'\0',sizeof(t) );
sprintf(t,"%10.2f",tmp); // << truncate the value and put in string
return strtod(t,&stopstr); // << return a float from the string
}