#c# #unity3d
#c# #unity3d
Вопрос:
Я пытаюсь прочитать десятичное значение из файла, но оно выдает ошибку: строка ввода не в правильном формате код, который я написал:
void Start()
{
fileName = "assets/names.txt";
myFilePath = fileName;
namesArray = File.ReadAllLines(myFilePath);
DisplayAllStudents();
}
void DisplayAllStudents()
{
System.Array.Sort(namesArray);
foreach (string line in namesArray)
{
string[] field = line.Split(',');
createSphere(field);
}
}
Комментарии:
1. Пожалуйста, опубликуйте пример десятичного значения, которое вы пытаетесь прочитать, и код, который вы использовали для его чтения.
2. @Steve 0,1,90,3 3,1.5,0,2 как будто я хочу прочитать 1,5
3. пожалуйста, введите код для функции createSphere, я полагаю, что вы пытаетесь преобразовать строку в десятичную в этой функции?
4. 3 3 это недопустимое число для любого используемого вами анализатора.
5. Большое спасибо, ребята, я использовал Int32.parse вместо float.parse люблю вас, ребята @TJacken
Ответ №1:
Чтобы сохранить десятичный разделитель, который вы анализируете для разных стран, используйте фиксированную культуру, например:
System.Globalization.CultureInfo c = System.Globalization.CultureInfo.CreateSpecificCulture("en-us");
double[] field2 = field.Select(f => { double d; if (double.TryParse(f, System.Globalization.NumberStyles.Number, c, out d)) { return d; } else { return 0; }}).ToArray();