как прочитать десятичное значение из файла в c#

#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();