关于vc数值溢出的问题-1.#IND000000000

 -1.#IND000000000
数字识别程序发现了一个问题,
/****************************************************************
*   函数名称:Cal(int row, int col)
*   函数类型:double
*   参数说明:int row, int col:第row行,第col个区域
*   函数功能:计算某一小区域内黑像素所占比例,返回某一小区域内黑像素所占比例
****************************************************************/
double GetFeature::Cal(int row, int col)
{
 double w,h,count;
 //w=(right-left)/5;//原来是这样的,当right=5,left=1时,w=0.00000000,在本段程序最后,会出现分母为0的情况

 w=(double)(right-left)/5;//在前面加(double)进行强制转换,就可以了,当right=5,left=1时,w=0.800000000

 h=(top-bottom)/5;
 count=0;

 for(int j=bottom+row*h;j<bottom+(row+1)*h;j++)
 for(int i=left+col*w;i<left+(col+1)*w;i++)
 {
  if(m_pData[j*LineBytes+i]==0)
   count++;
 }

 return (double)count/(w*h);
}

 
         

你可能感兴趣的:(关于vc数值溢出的问题-1.#IND000000000)