1.浮点数的比较
2.防止被除数为0情况
1.浮点数的比较不可以直接比较,需要给定一个差值判断两个浮点数相减的结果是大于还是小于这个差值
bool operator>(double d1,double d2)
{
double diff = 0.00000001;
if(d1 - d2 > diff)return true;
else return false;
}
2.防止被除数为0,使用的方案是对被除数加上一个极小值,这个值不会影响计算的结果。
int UnitUtil::CaclBarCountForSCPJ(int firstValue,int secondValue,int scpjValue)
{
int barCount = 0;
float limits_min = numeric_limits<float>::min();//构建一个极小值,处理被除数为0的情况,但不影响计算结果
//计算钢筋数量
if(firstValue > secondValue)barCount = (firstValue - secondValue) + limits_min /scpjValue;
else barCount = (secondValue - firstValue) + limits_min/scpjValue;
//处理barCount为0的异常场景
if(0 == barCount)barCount=1;
return barCount;
}