Я использую следующий код для отображения прошедшего времени на экране. Отображение времени работает правильно. Но экономия времени иногда не работает правильно, например, если Time = 2,000001
Перед сохранением отображается время 0: 02.000
После сохранения и загрузки строки из текстового файла отображаемое время составляет 0: 02.100
Я обнаружил, что в этой строке что-то не так, потому что str1 = 2 и str2 = 1 и, следовательно, newline = 2,1 вместо 2,000001
newline = str1.ToString() + "," + str2.ToString();
Что не так с моим кодом? Что я должен изменить, чтобы правильно записать время в текстовом файле?
string s1;
float Time, delta;
delta = (float)gameTime.ElapsedGameTime.TotalSeconds;
Time += delta;
TimeSpan ts = TimeSpan.FromSeconds(Time);
s1 = ts.ToString("m\\:ss\\.fff");
После завершения уровня я сохраняю время в текстовом файле, например:
int str1, str2;
string[] strs1;
string line = Time;
strs1 = line.Split(',');
str1 = int.Parse(strs1[0]);
str2 = int.Parse(strs1[1]);
newline = str1.ToString() + "," + str2.ToString();
Запись строки в текстовом файле:
stream.WriteLine(newline);
Загрузка строки из текстового файла:
private static System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("de-DE");
string line = reader.ReadLine();
strs = line.Split(';');
float YourTime = float.Parse(strs[0], culture);