float CXXXDlg::SetFloatPrecision(float fInputFloat, int iPrecision)
{
float fReturnFloat = 0.0;
int iPrecisionInter = 1; // 存储精度的十倍,比如:三位精度则为10000
int iPrecisionTen = iPrecision+1; // 精度的十倍
int iFloatTenPrecision = 0; // 四舍五入
int iPrecisionDecimal = 0; // 取四舍五入后的小数部分
int iPrecisionInteger = 0; // 取整数部分
while(iPrecisionTen--)
iPrecisionInter *= 10; // 存储精度的十倍
iFloatTenPrecision = (int)(fInputFloat* iPrecisionInter+5.5); // 四舍五入
iPrecisionInteger = iFloatTenPrecision/iPrecisionInter; // 取整数部分
iPrecisionDecimal = (int)(iFloatTenPrecision)%iPrecisionInter/10; // 取四舍五入后的小数部分
fReturnFloat = (float)iPrecisionInteger+(float)(iPrecisionDecimal*10)/(float)iPrecisionInter;
return fReturnFloat;
}
更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn