Forum

Пожалуйста or Регистрация для создания сообщений и тем.

Конвертировать match.Groups[1].Value в число [Решено]

Page 1 of 2Next

Всем привет, программа берёт курс валют, как показано в уроке Хачатура по Regex. Далее нужно работать с match.Groups[i].Value как с числом (умножить, разделить и т.д). Пробовал Convert.ToDouble, студия не выдавала ошибок, однако в самой программе вылетает ошибка.

Привет. Вы хотя бы код предоставьте как делаете.

Добрый день.
Что-то не особо понял, что надо, но из гугла match.Groups[i].Value возвращает string, соотвтетсвенно для получения double можно использовать Double.Parse(), т.е. Double.Parse(match.Groups[i].Value).

Цитата: Adler от 05.10.2020, 21:19

Добрый день.
Что-то не особо понял, что надо, но из гугла match.Groups[i].Value возвращает string, соотвтетсвенно для получения double можно использовать Double.Parse(), т.е. Double.Parse(match.Groups[i].Value).

Привет,

Спойлер
Скопированоprivate void Button1_Click(object sender, EventArgs e)
Скопировано{
Скопированоstring line = "";
Скопированоusing (WebClient wc = new WebClient())
Скопированоline = wc.DownloadString("api");
СкопированоMatch match = Regex.Match(line, "<exchangerate ccy=\"USD\" base_ccy=\"UAH\" buy=\"(.*?)\" sale=\"(.*?)\"/>");
Скопированоlabel1.Text = match.Groups[1].Value;
Скопировано}
работает отлично, но при этом
Спойлер
Скопированоprivate void Button1_Click(object sender, EventArgs e)
Скопировано{
Скопированоstring line = "";
Скопированоusing (WebClient wc = new WebClient())
Скопированоline = wc.DownloadString("api");
СкопированоMatch match = Regex.Match(line, "<exchangerate ccy=\"USD\" base_ccy=\"UAH\" buy=\"(.*?)\" sale=\"(.*?)\"/>");
Скопированоdouble dbl = Double.Parse(match.Groups[1].Value);
Скопированоlabel1.Text = dbl.ToString();
Скопировано}
вызывает ошибку.

Добрый день.
"Входная строка имела неверный формат" означает, что то что там написано 🙂 То есть в том виде строка как есть не может быть преобразована в число. Лишние пробелы, неправильные знаки, запятая вместо точки, например, и т.д.
Конкретный пример приведите, какой формат имеет строка полученная через  match.Groups[1].Value

Цитата: Adler от 06.10.2020, 17:06

Добрый день.
"Входная строка имела неверный формат" означает, что то что там написано 🙂 То есть в том виде строка как есть не может быть преобразована в число. Лишние пробелы, неправильные знаки, запятая вместо точки, например, и т.д.
Конкретный пример приведите, какой формат имеет строка полученная через  match.Groups[1].Value

<exchangerate ccy="USD" base_ccy="UAH" buy="28.20000" sale="28.60000"/>
Соответственно в Groups[1].Value получаю 28.20000

@t1mur, привет 🖐

line = wc.DownloadString("api");

Можно ссылку на переменную api?

Здравствуйте. Я стесняюсь предположить, что там в числе Скопированотчк, а не Скопированозпт вызывает ошибку. Но только догадки.

Цитата: XpucT от 06.10.2020, 18:15

@t1mur, привет 🖐

line = wc.DownloadString("api");

Можно ссылку на переменную api?

Привет, https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=5.

Цитата: KiloSub от 06.10.2020, 18:29

Здравствуйте. Я стесняюсь предположить, что там в числе Скопированотчк, а не Скопированозпт вызывает ошибку. Но только догадки.

Добрый вечер, если создаю переменную double с числом 28.20000 и вывожу в лейбл через .ToString(), всё работает отлично.

Page 1 of 2Next