по поводу разделителя в дробном числе

bhairava7

Client
Регистрация
18.08.2015
Сообщения
154
Благодарностей
15
Баллы
18
Приветствую!

Подскажите, пожалуйста, как повторить те же действие, если значения содержатся в переменной, а не в коде.

Пример, который работает:
C#:
return 5.05 * 100; // = 505;
Пример, который не работает:
C#:
decimal result = 0;

var tcena= project.Variables["tcena"].Value.ToString(); // эта переменная содержит 5.05
result = System.Convert.ToDecimal(tcena);

return result * 100; // = возникает ошибка.
Пробовал искать в инете, так понял, что нужно как-то определить символ разделителя дробной части и задать его явно.

За это отвечает 2-й параметр в функции ToDecimal "iformatprovider", но что-то никак не удаётся подцепить его без ошибок. Может нужно еще что-то в юзинги добавить?
 
Последнее редактирование:

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Если у вас возникает ошибка, сразу пишите какая ошибка.
тут вообще не нужны юзинги

Код:
return double.Parse(project.Variables["tcena"].Value.Replace(".",","))*100;
 

bhairava7

Client
Регистрация
18.08.2015
Сообщения
154
Благодарностей
15
Баллы
18
Если у вас возникает ошибка, сразу пишите какая ошибка.
тут вообще не нужны юзинги

Код:
return double.Parse(project.Variables["tcena"].Value.Replace(".",","))*100;
Ошибка возникала именно из-за того, что в разделителе точка, а не запятая. Я знаю, что можно таким костылём решить, но интересно было узнать, как правильно передавать свой разделитель iformatprovider в функцию ToDecimal.

Но если не знаете, ладно, обойдусь таким решением.
Благодарю!
 

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