Double operation return infinite

问题描述 投票:0回答:1

我正在尝试使双精度值之间的百分比变化为正值或负值,然后递增变化,但是代码中的简单双精度操作会返回无限,但我不确定为什么不能将这两个双精度值相加。

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,04381​​49899300724->∞D1跟踪操作:-0,0457166071690971->∞

c#
1个回答
0
投票

对于双重转换,您不会得到无穷大,但对于浮点转换,您将无穷大。在那里,您将获得Infinity并且没有异常,然后在进行两次转换之前,代码将返回。

© www.soinside.com 2019 - 2024. All rights reserved.