求帮助double变量存储和比较
噢麦搞的 2021-04-07 03:11:54 贴代码
for(j=6;j<=3;j-=1)
{
p_my_buy_info=p_my_buy_info_bak;
for(i=0;i<All_Number;i++)
{
if(i!=0)
p_my_buy_info++;
if(p_my_buy_info->my_StockRating_Total==0.0000) continue;
if(fabs((double)j-p_my_buy_info->my_StockRating_Total)<1E-3)
{
n_stock_Out2++;
if(n_stock_Out2<=450)
{
strcat(s_tmp2,p_my_buy_info->my_Code);
strcat(s_tmp2,"\n");
}
}
}
}
这里一个问题是p_my_buy_info->my_StockRating_Total原来赋值就是通过
p_my_buy_info->my_StockRating_Total=(double)5 ; //这么赋值的
然后不用循环体,一个个堆起来却可以。、好头疼,百思不得其解
/* 还是错误
for(j=6;j<=3;j-=1)
{
p_my_buy_info=p_my_buy_info_bak;
for(i=0;i<All_Number;i++)
{
if(i!=0)
p_my_buy_info++;
if(p_my_buy_info->my_StockRating_Total==0.0000) continue;
if(fabs((double)j-p_my_buy_info->my_StockRating_Total)<1E-3)
{
n_stock_Out2++;
if(n_stock_Out2<=450)
{
strcat(s_tmp2,p_my_buy_info->my_Code);
strcat(s_tmp2,"\n");
}
}
}
}
*/
p_my_buy_info=p_my_buy_info_bak;
for(i=0;i<All_Number;i++)
{
if(i!=0)
p_my_buy_info++;
if(p_my_buy_info->my_StockRating_Total==0.0000) continue;
if(p_my_buy_info->my_StockRating_Total==6.0000)
{
n_stock_Out2++;
if(n_stock_Out2<=450)
{
strcat(s_tmp2,p_my_buy_info->my_Code);
strcat(s_tmp2,"\n");
}
}
}
p_my_buy_info=p_my_buy_info_bak;
for(i=0;i<All_Number;i++)
{
if(i!=0)
p_my_buy_info++;
if(p_my_buy_info->my_StockRating_Total==0.0000) continue;
if(p_my_buy_info->my_StockRating_Total==5.0000)
{
n_stock_Out2++;
if(n_stock_Out2<=450)
{
strcat(s_tmp2,p_my_buy_info->my_Code);
strcat(s_tmp2,"\n");
}
}
}
p_my_buy_info=p_my_buy_info_bak;
for(i=0;i<All_Number;i++)
{
if(i!=0)
p_my_buy_info++;
if(p_my_buy_info->my_StockRating_Total==0.0000) continue;
if(p_my_buy_info->my_StockRating_Total==4.0000)
{
n_stock_Out2++;
if(n_stock_Out2<=450)
{
strcat(s_tmp2,p_my_buy_info->my_Code);
strcat(s_tmp2,"\n");
}
}
}
p_my_buy_info=p_my_buy_info_bak;
for(i=0;i<All_Number;i++)
{
if(i!=0)
p_my_buy_info++;
if(p_my_buy_info->my_StockRating_Total==0.0000) continue;
if(p_my_buy_info->my_StockRating_Total==3.0000)
{
n_stock_Out2++;
if(n_stock_Out2<=450)
{
strcat(s_tmp2,p_my_buy_info->my_Code);
strcat(s_tmp2,"\n");
}
}
}
这种却可以出来正确结果,为啥?误差这么大吗?
求帮助。