四舍五入是一种应用非常广泛的近似计算方法,
其有算术舍入法和银行家舍入法两种。
此截取函数在利息计算,结算金额计算等实际应用
Digit为正数 OyRoundTo(124500, 3) = 12500
Digit为负数 OyRoundTo(12.45, -1) = 12.5
c++:
long long OyTrunc(double X)
{
if (X >= 0.00001)
{
return trunc(X + 0.00001);
}
else
{
return trunc(X - 0.00001);
}
}
double OyRoundto(double X, int digit)
{
double dtemp;
long long ltemp;
dtemp = X * pow(10, -digit);
ltemp = OyTrunc(dtemp);
if ((dtemp - ltemp) >= 0.5) //正数
ltemp = ltemp + 1;
else if (dtemp - ltemp <= -0.5)//负数
ltemp = ltemp - 1;
//最后再除以10的digit次方倍
return ltemp / pow(10, -digit);
}
</