Не получается сконвертировать переменную в дабл

Porosenok

Client
Регистрация
26.09.2010
Сообщения
1 279
Благодарностей
96
Баллы
48
Добрый день, есть такой код
Код:
var attribute = he.GetAttribute("data1");
var attribute2 = he.GetAttribute("data2");
double variable1 = Convert.ToDouble(attribute);
double variable2 = Convert.ToDouble(attribute2);
в переменной attribute2 содержится число с точкой и двумя знаками после нее, например 50.00. Нужно сконвертировать его в дабл, дабы потом перемножить с числом из переменной attribute.
Так вот, при конвертации attribute проблем не возникает. А когда конвертирую attribute2 то пишет ошибку Входная строка имела неверный формат.
Притом если я пишу просто double variable2 = Convert.ToDouble(50.00); то никаких ошибок нет, то есть все конвертит нормально.
В чем дело, что я делаю не так?
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
C#:
var attribute = he.GetAttribute("data1").Replace(".", ",");
var attribute2 = he.GetAttribute("data2").Replace(".", ",");
double variable1 = Convert.ToDouble(attribute);
double variable2 = Convert.ToDouble(attribute2);
 
  • Спасибо
Реакции: sentinel и Porosenok

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Используй инвариантную культуру, чтобы потом не было проблем на разных серверах из-за региональных стандартов:
Код:
double variable2 = Convert.ToDouble("50.00", System.Globalization.CultureInfo.InvariantCulture);
 
  • Спасибо
Реакции: Dimionix

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)