C# 双操作返回无限

C# 双操作返回无限,c#,C#,我试图得到一个double之间的百分比变化,可以是正的,也可以是负的,然后是增量变化,但代码中的一个简单的double操作返回无穷大,但我不确定为什么我不能添加这两个double Cchange = CalculateChangePercent(currenttHigh.BidHigh, ohlc.BidHigh); Hchange = Cchange + Hchange; Debug.WriteLine(timeSpan + " Trace operation : " + Cchange +

我试图得到一个double之间的百分比变化,可以是正的,也可以是负的,然后是增量变化,但代码中的一个简单的double操作返回无穷大,但我不确定为什么我不能添加这两个double

Cchange = CalculateChangePercent(currenttHigh.BidHigh, ohlc.BidHigh);
Hchange = Cchange + Hchange;
Debug.WriteLine(timeSpan + " Trace operation : " + Cchange + " -->  " + Hchange) ;


public double CalculateChangePercent(double previous, double current)
  {
      var change = Math.Abs(current) - Math.Abs( previous);
      return (double)change / previous;
  }
控制台输出:

D1跟踪操作:-00500557519599624-->∞
D1跟踪操作:-00463130234849731-->∞
D1跟踪操作:-00438149899300724-->∞
D1跟踪操作:-00457166071690971-->∞


Hchange=Cchange+Hchange1d/0d=∞. 你是在除以0吗?事实上,这会更容易帮助你计算。
currenttHigh.bidhight
是零。只是一个建议:。如果您将此作为单元测试编写,则问题将被封装,显示输入和预期结果。这样,人们就非常容易理解您传递给函数的值,以及您期望的值,并使用它来帮助您获得您期望的结果。