Укажите формат чисел double.TryParse (..)? - PullRequest
1 голос
/ 03 января 2011

Я получаю строки lat / lon от API обратно в формате, например, '37 .766713 'или' -122.428938 '(см. http://en.wikipedia.org/wiki/Decimal_degrees) и хотите разобрать их в двойные значения, однако, double.TryParse (string, out doubleInstance) дает мне двойное значение' 37766713,0 '. любой элегантный способ указать формат ввода для анализа? Делать string.Replace (".", ",") немного больно.

Ответы [ 3 ]

5 голосов
/ 03 января 2011

Это проблема культуры.Попробуйте использовать InvariantCulture.

double d = Double.Parse("37.766713", CultureInfo.InvariantCulture);
2 голосов
/ 03 января 2011

Вздох .. должен был выглядеть на немного длиннее ... это делает трюк: Double.TryParse () входной десятичный разделитель отличается от системного десятичного разделителя

1 голос
/ 03 января 2011

Посмотрите на Convert.ToDouble () или Double.parse () , вы можете указать IFormartProvider для определенного числового формата.

...