C# 双操作返回无限
我试图得到一个double之间的百分比变化,可以是正的,也可以是负的,然后是增量变化,但代码中的一个简单的double操作返回无穷大,但我不确定为什么我不能添加这两个doubleC# 双操作返回无限,c#,C#,我试图得到一个double之间的百分比变化,可以是正的,也可以是负的,然后是增量变化,但代码中的一个简单的double操作返回无穷大,但我不确定为什么我不能添加这两个double Cchange = CalculateChangePercent(currenttHigh.BidHigh, ohlc.BidHigh); Hchange = Cchange + Hchange; Debug.WriteLine(timeSpan + " Trace operation : " + Cchange +
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+Hchange代码>1d/0d=∞. 你是在除以0吗?事实上,这会更容易帮助你计算。currenttHigh.bidhight
是零。只是一个建议:。如果您将此作为单元测试编写,则问题将被封装,显示输入和预期结果。这样,人们就非常容易理解您传递给函数的值,以及您期望的值,并使用它来帮助您获得您期望的结果。