在c#中使用“Double.NaN”和“double.MaxValue”时出现奇怪错误

时间:2011-02-23 18:13:43

标签: c# c#-3.0 crash double

我的代码中有一个函数,如(C#,NET 3.5,Visual Studio 2008):

public double function CalculateSomething()
{
   ...
   double a = double.NaN; // Or double.MaxValue, with same behaviour
   ...
}

这个函数由主类调用,如下所示:

...
double res = o.CalculateSomething();
...

虽然在某些计算机上(仅限于60台中的2台计算机)看起来不可思议(对我而言)和而没有任何特殊的(WinXP SP3),如果我使用&#34 ;别名" (double.NaN或double.MaxValue)当程序调用" CalculateSomething"时程序被破坏,没有任何错误屏幕,而如果你指定一个特定的值,则完美地工作。

我的意思是:

public double function CalculateSomething()
{
   ...
   double a = double.NaN; // FAAAAIL!!!!
   double b = -99999; // OK... 
   ...
}

虽然我做了改变,程序可以在所有计算机上运行,​​但我有好奇心。有谁知道可能会发生什么?谢谢。

1 个答案:

答案 0 :(得分:1)

好的,我发现了问题:

  • 我安装了.NET 4.0,但程序需要NET 3.5。我安装了NET 3.5并且运行良好。

真的,这是我见过的最稀有的东西。

谢谢大家的回复。