Преобразование 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());
}