C # не может проанализировать NaN как двойной - PullRequest
5 голосов
/ 02 июля 2010

На ПК с Windows в Японии эта строка C # выдает исключение формата:

double d = double.Parse("NaN");

Эта строка отлично работает на моем ПК в США.

Не знаю, с чего начать устранение неисправностей. Есть мысли?

Спасибо заранее, Jim

Ответы [ 2 ]

8 голосов
/ 02 июля 2010

Я вижу, в чем проблема. Попробуйте использовать поставщик инвариантного формата.

double d = double.Parse("NaN", CultureInfo.InvariantCulture);
0 голосов
/ 02 июля 2010

Во-первых, вы должны определить двойное значение для "NaN". В любом случае, синтаксический анализ строки не числового формата вызовет System.FormatException, вы должны перехватить его и установить двойное значение вручную.

double x;
string foo = "NaN";
try 
{
    x = double.Parse(foo);
}
catch
{
    x = 0.0;
}
...