Преобразование строки в двойное - PullRequest
5 голосов
/ 05 апреля 2009

Я пытаюсь преобразовать строку в двойное значение, но она не возвращает мне то, что я ожидаю ...

double dbl;
Double.TryParse("20.0", out dbl);

Этот кусок кода возвращает 200.0 (вместо 20.0) как двойное значение. Есть идеи почему?

1 Ответ

22 голосов
/ 05 апреля 2009

Вы должны передать InvariantCulture методу.

Причина этого в том, что ваши региональные настройки, вероятно, устанавливают . в качестве символа разделителя, а не десятичной точки.

double.TryParse("20.0", NumberStyles.Any, 
                CultureInfo.InvariantCulture, out x);
...