我正在尝试使双精度值之间的百分比变化为正值或负值,然后递增变化,但是代码中的简单双精度操作会返回无限,但我不确定为什么不能将这两个双精度值相加。
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跟踪操作:-0,0500557519599624->∞D1跟踪运算:-0,0463130234849731->∞D1跟踪运算:-0,0438149899300724->∞D1跟踪操作:-0,0457166071690971->∞
对于双重转换,您不会得到无穷大,但对于浮点转换,您将无穷大。在那里,您将获得Infinity并且没有异常,然后在进行两次转换之前,代码将返回。