我正在尝试将totalprofit打印到输出文件中,但是totalprofit出来是nan。利润变量很好,它不会变成无穷大或除以0。我只是将利润值加到利润总额中。不知道为什么向我展示nan。

double profit, totalprofit;

int intsize = 500;

for(int j = 0; j < 372500; j++)
{


  infile>>data;
  tradethis.push_back(data);

  if(j%intsize==0)
  {

    for(int i=1; i<intsize; i++)
      {
          profit=0;
          profit=eurusd.position(i-1)*((tradethis[i]-tradethis[i-1])); //position returns 1000

          totalprofit = totalprofit + profit;

          outdata<<totalprofit<<endl;

          cout<<totalprofit<<endl;

          //pnl.push_back(totalprofit);

          if(profit>0)
          {
              c+=1.0;
              t+=1.0;
          }

          else if(profit<0)
          {
              w+=1.0;
              t+=1.0;
          }

      }
      tradethis.clear();
  }

}
outdata.close();

最佳答案

  • 始终初始化变量
  • double profit = 0, totalprofit = 0; 一个好的编译器会对此发出警告。
  • 在需要的地方声明变量,而不是在最上面。 profit不需要提前声明。
  • 07-27 13:21