Преобразование всего массива строк в двойной массив вызывает исключение формата ввода, но преобразование отдельных элементов работает нормально - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь преобразовать строковый массив (который я заполнил из файла .txt) в двойной массив в C #.

Это то, что я пробовал, используя цикл for, который я видел в других решениях.

            string[] StringArr = File.ReadAllLines("256.txt");

            double[] DoubleArr = new double[StringArr.Length];

            for(int i = 0; i < StringArr.Length; i++)
            {
                DoubleArr[i] = Convert.ToDouble(StringArr[i]);
            }

Это вызвало исключение "System.FormatException: 'Входная строка былане в правильном формате. "для

DoubleArr[i] = Convert.ToDouble(StringArr[i]);

Я подумал, что что-то не так с форматом данных из текстового файла, но когда я попытался

DoubleArr[0] = Convert.ToDouble(StringArr[0]);
Console.WriteLine(DoubleArr[0]);

, это сработало без исключения, и напечаталправильный номер.

Я полагаю, что, должно быть, я что-то не так сделал с циклом for?

1 Ответ

0 голосов
/ 24 апреля 2019

без отправки ваших данных, у вас может быть проблема Incorrect decimal separator

В разных культурах используются разные десятичные разделители (например, , и .)

Если вы замените. с, все будет хорошо

или вы используете Культуру:

double.Parse("12.345", System.Globalization.CultureInfo.InvariantCulture)

также вы можете иметь пустое значение, которое является неправильным двойным

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...