@demidborodin
FrontEnd Developer

Входная строка имела неверный формат. В чём ошибка?

При выполнении этого куска кода происходит ошибка.
double d = double.Parse("1.1");
Console.WriteLine("Value of d: {0}", d);

Почему собственно неверный формат, вроде всё правильно.

P.S пример из книги Andrew Troelsen. Pro C# and .NET4.5
  • Вопрос задан
  • 24783 просмотра
Решения вопроса 1
А так:
double d = double.Parse("1,1");
Console.WriteLine("Value of d: {0}", d);


Все дело в локализации которая установлена в операционной системе. Если ru, то запитая, если eng, то точка.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bmforce
Если вы точно уверены, что у вас всегда будет точка в качестве разделителя запятой, то вам проще всего будет задать инвариантную культуру.

double d = double.Parse("1.1", CultureInfo.InvariantCulture);

Если всегда запятая, но не уверены, что будет стоять русская локализация в системе:
double d = double.Parse("1,1", CultureInfo.GetCultureInfo("Ru-ru"));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы