2017-01-04 2 views
0

У меня есть ярлык (lblAmountTendered), который содержит в нем строку валюты. Я хотел бы преобразовать его в двойное, чтобы выполнить некоторые вычисления. Тем не менее, оно показало сообщение об ошибке : строка ввода не была в правильном формате в первом утверждении.Как преобразовать ярлык формата валюты в двойной для расчета цели

Вот мой код:

double balance = double.Parse(amount) - double.Parse(lblAmountTendered.Text.ToString()); 
lblBalanceDue.Text = balance.ToString("c2",CultureInfo.CreateSpecificCulture("en-MY")); 

Для примера:

lblAmountTendered = RM 15
Я хочу, чтобы получить значение этого (15) для расчета.

Ждем решения. Я ценю за вашу помощь! :)

задача, решаемая
lblAmountTendered.Text.ToString(). Remove (0,3)

Remove (0,3) помогает удалить 'RM' от 'RM 15', так что мы можем преобразовать его в два раза или плавать легко, как показано ниже:

float.Parse (lblAmountTendered.Text.ToString() Remove (0, 3).)

+1

Вы должны дать нам значение, которое вы пытаетесь разобрать. – Sefe

+0

изменить эту строку поможет? 'double.Parse (amount.ToString()) - double.Parse (lblAmountTendered.Text.ToString());' –

+0

@RahulHendawe Извините, он по-прежнему получает ту же ошибку :( – Hidden

ответ

0

Здесь в первую очередь необходимо получить числовое значение из строки с использованием регулярных выражений ниже:

string resultNum = Regex.Match(lblAmountTendered.Text, @"\d+").Value; 

, а затем использовать resultNum в коде как-

double balance = double.Parse(amount.ToString()) - double.Parse(resultNum); 
lblBalanceDue.Text = balance.ToString("c2",CultureInfo.CreateSpecificCulture("en-MY")); 
+0

Это регулярное выражение будет работать только с целыми числами * –

+0

op упомянул 'RM 15', это может быть значение, которое он имеет, и данное регулярное выражение будет работать для этого. –

+0

Рассмотрим универсальный подход, а не конкретный пример. Большая часть валюты не будет целым числом, и ОП не собирается перечислять пример для каждой валюты, которая существует. – Takarii

Смежные вопросы