Stream Reader将System.FormatException加倍

时间:2015-05-15 17:34:23

标签: c# asp.net csv yahoo-finance

我想将yahoo csv股票价格转换为C#双数组。 这是我的代码:

WebRequest wrPrice = WebRequest.Create("http://finance.yahoo.com/d/quotes.csv?s=" + sSymbols + "&f=a"); //sSymbols zb. "AAPL+GOOG+MSFT"
    WebResponse wResp = wrPrice.GetResponse();
    StreamReader sr = new StreamReader(wResp.GetResponseStream());
    double[] dCurrentPrice = new double[iStockTableRows];
    int iLine = 0;
    while (sr.Peek() >= 0)
    {
        dCurrentPrice[iLine] = double.Parse(sr.ReadLine());
        iLine++;
    }
    sr.Close();

整数iStockTableRows是股票的数量。 字符串sSymbols包含股票代码,它可以如下所示:" AAPL + MSFT"

CSV文件如下所示:

128.61
544.98

当我运行它时,此行发生System.FormatException:

dCurrentPrice[iLine] = double.Parse(sr.ReadLine());

首先它起作用,并且由于某种原因再次发生同样的错误。 当我写sr.ReadLine()时,它不会返回任何内容。

1 个答案:

答案 0 :(得分:1)

尝试:

dCurrentPrice[iLine] = double.Parse(sr.ReadLine(), System.Globalization.CultureInfo.InvariantCulture);

也许您在非美国计算机上,使用不同的小数点分隔符。