.NET 4.x Конвертация XmlNode.InnerText в Double - C#
Формулировка задачи:
Здравствуйте!
Пишу библиотеку для конвертации валют, столкнулся с не выполнением условия тут:
хотя числовое значение в node.ChildNodes[4].InnerText присутствует.
if (Double.TryParse(node.ChildNodes[4].InnerText, out course) ;
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml; namespace ConverterLibrary { public class CurrencyConverter { /// <summary> /// Gets courses in XML for all currency /// </summary> private static XmlDocument GetAllCourses() { try { XmlDocument doc = new XmlDocument(); doc.Load("http://pfsoft.com.ua/service/currency/"); return doc; } catch (Exception e) { throw new Exception(e.Message); } } private static double GetCourse(string curr_name) { double course = 0; XmlDocument XmlDoc = GetAllCourses(); foreach (XmlNode node in XmlDoc.SelectNodes("/ValCurs/Valute")) { if (node.ChildNodes[1].InnerText == curr_name) // get CharCode { throw new Exception(node.ChildNodes[4].InnerText); // = 2.8005 но условие не выполняется все равно if (Double.TryParse(node.ChildNodes[4].InnerText, out course)) // get the course value, nominal = 100 { if (Int32.Parse(node.ChildNodes[2].InnerText) == 10) course *= 10; //for RUB, BYR nominal = 10 if (Int32.Parse(node.ChildNodes[2].InnerText) == 1000) course /= 10; //for JPY, HUF nominal = 1000 return course; } } } return course; // 0; } public static double Convert(double val, string curr_name1, string curr_name2 = "") { double course, result; if (val < 1) throw new Exception("Error! Сurrency value < 1!"); if (curr_name1 == "UAH") course = GetCourse(curr_name2); else if (curr_name2 == "UAH" || curr_name2 == "") course = GetCourse(curr_name1); else throw new Exception("Error! One of the parameters must be UAH."); result = (val * course) / 100; if (result == 0) throw new Exception("Error! Unknown currency CharCode."); return result; } } }
Решение задачи: «.NET 4.x Конвертация XmlNode.InnerText в Double»
textual
Листинг программы
if (Double.TryParse(node.ChildNodes[4].InnerText, NumberStyles.Any, CultureInfo.InvariantCulture, out course))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д