Странная ошибка при использовании "Double.NaN" и "double.MaxValue" в c # - PullRequest
1 голос
/ 23 февраля 2011

У меня есть функция в моем коде, например (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();
...

Хотя это выглядит невероятно (для меня это так) и ТОЛЬКО на некоторых компьютерах (только на 2 компьютерах из 60) без чего-либо особенного (WinXP SP3), если я использую «псевдоним» ( double.NaN или double.MaxValue), когда программа вызывает «CalculateSomething», программа ломается без какого-либо сообщения об ошибке, тогда как если вы назначаете определенное значение, она работает отлично.

Я имею в виду:

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

Несмотря на внесенные мною изменения, программа может работать на всех компьютерах, но мне любопытно. Кто-нибудь знает, что может происходить? Спасибо.

1 Ответ

1 голос
/ 02 марта 2011

Хорошо, я нашел проблему:

  • Я установил NET 4.0, но программе требовалось NET 3.5.Я установил NET 3.5, и он заработал.

Действительно, это самая редкая вещь, которую я когда-либо видел.

Спасибо всем за ваши ответы.

...