Сохранение с плавающей точкой в ​​текстовый файл работает неправильно - PullRequest
0 голосов
/ 06 сентября 2018

Я использую следующий код для отображения прошедшего времени на экране. Отображение времени работает правильно. Но экономия времени иногда не работает правильно, например, если 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...