最近,写一个金融的项目要用到四舍五入,网上找了一些,发现很多错误,而且循环比较太多了,影响性能,所以还是自己写一个吧
//code
double round(double number, short decimal)
{
double time1 = pow(10, decimal);
double time3 = pow(10, (decimal-1));
double time2 = pow(10, (decimal*-1));
double time4 = pow(10, ((decimal-1)*-1));
int tNum1 = number / time1;
int tNum2 = number / time3;
int Num = tNum2 - tNum1 * 10;
if(Num > 4)
{
tNum1++;
}
double dNum = tNum1 * time1;
return dNum;
}
//test
round(2322.2342342, 2); //取2322.2342342,百位四舍五入。 1,10位,2百位。。。。。。
round(2322.2342342, -2); //取2322.2342342,百分位四舍五入。-1,10分位, -2百分位。。。。。