Double умножение

  • Автор темы Автор темы qzen4i
  • Дата начала Дата начала

qzen4i

Client
Регистрация
01.05.2014
Сообщения
1 408
Реакции
315
Баллы
83
Подскажите пожалуйста почему на 1 пк считается верно в другом нет, то есть, в одном месте как положено пишется 21,75 а в другому 2175 т.е без , как это лечить?
 
Код:
Развернуть Свернуть Копировать
double i  = Convert.ToDouble(project.Variables["xto"].Value.Replace(".",","));
double j  = Convert.ToDouble(project.Variables["ownprice"].Value.Replace(".",","));

return i*j;

Сам код такой
 
Я в свое время задавался этим вопросом в одной беседе скайпа, в которой сидели c# кодеры и все думали-думали, да не додумались, в итоге сам догадался.
Правильный ответ: региональные стандарты разные на разных компах. Установи culture правильно и будет считать как нужно.
 
  • Оценить
Реакции: qzen4i
Я в свое время задавался этим вопросом в одной беседе скайпа, в которой сидели c# кодеры и все думали-думали, да не додумались, в итоге сам догадался.
Правильный ответ: региональные стандарты разные на разных компах. Установи culture правильно и будет считать как нужно.
Спасибо, как не пробовал так было, не догадался бы никогда от чего, вместо этого сразу переключился на JS и все стало ок)
За ответ спасибо буду иметь в виду.
 
Подскажите пожалуйста почему на 1 пк считается верно в другом нет, то есть, в одном месте как положено пишется 21,75 а в другому 2175 т.е без , как это лечить?
Надо использовать CultureInfo.InvariantCulture, например:
C#:
Развернуть Свернуть Копировать
string str = "123,456";
return Convert.ToDouble(str.Replace(",", "."), CultureInfo.InvariantCulture);
 
  • Оценить
Реакции: qzen4i

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