Double умножение

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 404
Благодарностей
313
Баллы
83
Подскажите пожалуйста почему на 1 пк считается верно в другом нет, то есть, в одном месте как положено пишется 21,75 а в другому 2175 т.е без , как это лечить?
 

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 404
Благодарностей
313
Баллы
83
Код:
double i  = Convert.ToDouble(project.Variables["xto"].Value.Replace(".",","));
double j  = Convert.ToDouble(project.Variables["ownprice"].Value.Replace(".",","));

return i*j;
Сам код такой
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Я в свое время задавался этим вопросом в одной беседе скайпа, в которой сидели c# кодеры и все думали-думали, да не додумались, в итоге сам догадался.
Правильный ответ: региональные стандарты разные на разных компах. Установи culture правильно и будет считать как нужно.
 
  • Спасибо
Реакции: qzen4i

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 404
Благодарностей
313
Баллы
83
Я в свое время задавался этим вопросом в одной беседе скайпа, в которой сидели c# кодеры и все думали-думали, да не додумались, в итоге сам догадался.
Правильный ответ: региональные стандарты разные на разных компах. Установи culture правильно и будет считать как нужно.
Спасибо, как не пробовал так было, не догадался бы никогда от чего, вместо этого сразу переключился на JS и все стало ок)
За ответ спасибо буду иметь в виду.
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
651
Баллы
93
Подскажите пожалуйста почему на 1 пк считается верно в другом нет, то есть, в одном месте как положено пишется 21,75 а в другому 2175 т.е без , как это лечить?
Надо использовать CultureInfo.InvariantCulture, например:
C#:
string str = "123,456";
return Convert.ToDouble(str.Replace(",", "."), CultureInfo.InvariantCulture);
 
  • Спасибо
Реакции: qzen4i

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