none
Неверный входной формат строки RRS feed

  • Вопрос

  • Здравствуйте,

    есть файл из чисел типа double

    (например:

    05050370              4.0    10389425.0     5808760.0  1864.0  seis
    05050370              5.0    10389448.0     5808751.0  1864.0  seis
    05050370              6.0    10389472.0     5808741.0  1864.0  seis
    05050370              7.0    10389495.0     5808732.0  1864.0  seis
    05050370              8.0    10389518.0     5808723.0  1865.0  seis

    )

    читаю построчно и добавляю в список,потом добавляю нужные мне числа в другие списки

    все верно работает,но только если в файле целые числа (без точки и цифр после нее)

    в чем ошибка?

    List<string> fileLines = new List<string>();
                StreamReader sr = new StreamReader("out.txt");
                while (true)
                {
                    String s = sr.ReadLine();
                    if (s == null)
                    {
                        break;
                    }
                    fileLines.Add(s);
                    var cLine = new InputModel(s.Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries));
                    trace.Add(Convert.ToDouble(cLine.trace));
                    high.Add(Convert.ToDouble(cLine.high));
                }
                sr.Close();

    Компилятор ругается на этих строках:

    trace.Add(Convert.ToDouble(cLine.trace));
    high.Add(Convert.ToDouble(cLine.high));

    пишет неверный входной формат строки, хотя я привожу строку к типу дабл

    как исправить? 

    16 декабря 2013 г. 11:23

Ответы

  • Добрый день.

    У вас не совпадет символ разделителя целой и дробной части в региональных настройках и файле. В этом и проблема. Замените при чтении строки точку на запятую (или наоборот) и будет вам счастье... Или при ToDouble указывайте региональные настройки. Вот здесь посмотрите.

    • Помечено в качестве ответа V_Ald 16 декабря 2013 г. 13:49
    16 декабря 2013 г. 11:46
    Отвечающий