您的位置:网站首页 > CAD新闻

CAD objectarx 保留小数后面指定的位数

时间:2011-08-18 09:55:12 来源:未知

CAD objectarx 保留小数后面指定的位数

该函数实现保留小数后面指定位数的小数:

调用方式为:

Round(0.499,2)=0.50  Round(0.4949,2)=0.49
 

double Round(double _x, int decimalnum)
{
 //参数:数、保留小数位数
 //说明:该函数只关心保留小数位数的后一位,与sprintf函数相同
 //      例: round(0.499,2)=0.50  round(0.4949,2)=0.49
 double num,dec,factor;
 dec  = modf(_x,&num);//分切整数与小数部分(不直接用long型数参与计算,
          //        避免运算溢出)
 factor= pow(10.0f,decimalnum);//因子
 dec  *=factor;//小数点右移decimalnum位
 dec  +=_x>=0 ? 0.5:-0.5;//四舍五入运算
 modf(dec,&dec);//取整
 dec/=factor;//小数点左移decimalnum位
 return num + dec;//合并返回值
}