//四舍五入1
float FloatRound(float fVal , int n)
{
CString strFmt;
CString strVal;
float b;
strFmt.Format(_T("%%.%df"),n);//n是你要四舍五入得到的位数
strVal.Format(strFmt,fVal);
b=_wtof(strVal);
return b;
}
//四舍五入2
static double RoundDouble(double dVal, UInt32 nNum)
{
double temp = pow(10.0, nNum*1.0) ;
int nVal;
if ( dVal > 0.0 )
{
nVal = dVal*temp + 0.5 ;
}else
{
nVal = dVal*temp - 0.5 ;
}
dVal = nVal / temp ;
return dVal;
}
//比较两个浮点数,如果相等返回0,fVal1 > fVal2 返回1 , fVal1 < fVal2 返回-1
int CompareFloat(double fVal1 , double fVal2 , int nScale)
{
double fResult = fVal1 - fVal2 ;
double dbPrecision ;
dbPrecision = pow(10.0,nScale*(-1.0));
if ( fResult >= dbPrecision*(-1) && fResult <= dbPrecision)
return 0;
if ( fResult > dbPrecision )
return 1;
if ( fResult < dbPrecision *(-1) )
return -1;
}