谷歌货币转换器

时间:2015-08-14 15:45:25

标签: c# regex decimal converter currency

我在过去几年里曾使用过这段代码,但google似乎已经改变了一些链接。出于某种原因,我收到此错误消息:

  

"输入字符串的格式不正确。"

在以下行中:

decimal rate = System.Convert.ToDecimal(match.Groups[1].Value);

我的代码:

try
{
    WebClient web = new WebClient();
    string url = string.Format("https://www.google.com/finance/converter?a={2}&from={0}&to={1}", fromCurrency.ToUpper(), toCurrency.ToUpper(), amount);

    string response = web.DownloadString(url);

    Regex regex = new Regex("rhs: \\\"(\\d*.\\d*)");
    Match match = regex.Match(response);
    decimal rate = System.Convert.ToDecimal(match.Groups[1].Value);

    return rate;
}
catch
{
    return 0;
}

1 个答案:

答案 0 :(得分:7)

你可能不喜欢这种方法,但它完成了工作。

WebClient web = new WebClient();
string url = string.Format("https://www.google.com/finance/converter?a={2}&from={0}&to={1}", fromCurrency.ToUpper(), toCurrency.ToUpper(), amount);

string response = web.DownloadString(url);

var split  = response.Split((new string[] { "<span class=bld>"}),StringSplitOptions.None);
var value = split[1].Split(' ')[0];
decimal rate = decimal.Parse(value,CultureInfo.InvariantCulture);