Преобразование string в float - C# (209554)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! У меня возникла проблема. При попытке преобразовать строку в float выдаёт ошибку Format Exception. Фрагмент кода:
StreamReader coord = new StreamReader(textBox34.Text, Encoding.Default);
 
                string[] cx = new string[count];
                string[] cy = new string[count];
                string[] cn = new string[count];
 
                int i = 0;
                int c = 0;
                for (i = 0; i < lines; i++)
                {
                    string line = coord.ReadLine();
 
                    if ((line.ToCharArray())[0] == 'N' && (line.ToCharArray())[1] == '=')
                    {
 
                        cx[c] = line.Substring(line.IndexOf("X") + 2, (line.IndexOf("Y") - 1 - line.IndexOf("X") - 2));
 
                        if (c != count - 1)
                        {
                            cy[c] = line.Substring(line.IndexOf("Y") + 2, (line.ToCharArray()).Length - 1 - line.IndexOf("Y") - 2);
                        }
                        else
                        {
                            cy[c] = line.Substring(line.IndexOf("Y") + 2, (line.ToCharArray()).Length - line.IndexOf("Y") - 2);
                        }
 
                        cn[c] = line.Substring(line.IndexOf("P") + 3, line.IndexOf("X") - 2 - line.IndexOf("P") - 3);
 
                        c++;
 
                    }
                float[] x = new float[count];
                float[] y = new float[count];
 
            for (int j = 0; j < count; j++)
                {
                    x[j] = Single.Parse(cx[j]);
                    y[j] = Single.Parse(cy[j]);
                }
Подскажите, пожалуйста, где у меня ошибка.

Решение задачи: «Преобразование string в float»

textual
Листинг программы
var nfi = new System.Globalization.NumberFormatInfo();
                nfi.NumberDecimalSeparator = ".";
 
                for (i = 0; i < lines; i++)
                {
                    string line = coord.ReadLine();
 
                    if ((line.ToCharArray())[0] == 'N' && (line.ToCharArray())[1] == '=')
                    {
 
                        cx[c] = line.Substring(line.IndexOf("X") + 2, (line.IndexOf("Y") - 1 - line.IndexOf("X") - 2));
 
                        cy[c] = line.Substring(line.IndexOf("Y") + 2, (line.IndexOf("Y") - 1 - line.IndexOf("X") - 2));
 
                        cn[c] = line.Substring(line.IndexOf("P") + 3, line.IndexOf("X") - 2 - line.IndexOf("P") - 3);
 
                        c++;
 
                    }
                }
 
                
                
 
 
                float[] x = new float[count];
                float[] y = new float[count];  
 
                for (int j = 0; j < count; j++)
                {
                    x[j] = Single.Parse(cx[j], nfi);
                    y[j] = Single.Parse(cy[j], nfi);
                    
                    MessageBox.Show(x[j].ToString());
                }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.615 из 5