Я использую функцию ReadLine объекта StreamReader для чтения десятичных значений из текстового файла.То, что я нахожу странным, это то, что некоторые значения имеют три знака после запятой всех нулей, то есть «-93.000», но когда я отлаживаю, я замечаю, что программа чтения потоков будет считывать предыдущее значение только как «-93.00».Я не уверен, почему это происходит, он будет читать значения с двумя десятичными разрядами всех нулей, то есть "-85.00", просто отлично.Мне нужно иметь возможность прочитать все значение для целей проверки, в противном случае в моей программе сообщаются неточные результаты.
Есть идеи, почему такое поведение происходит?Есть ли другой способ синтаксического анализа текстового файла, который сохранит исходную строку ??Спасибо.
ОБНОВЛЕНИЕ:
Код для чтения текстового файла
string Line = sr.ReadLine();
Примеры значений в текстовом файле:
-93.000 {\Tab}
-99.99 {\Tab}
-85.00
Переменная строки послечтение первой строки:
Line = "-93.00\t
-99.99\t
-85.00"
ОБНОВЛЕНИЕ 2:
Я несколько раз проходил через это за последний час.Я пытался наблюдать за тем, где находится Линия, к этому я и сузил ее.Я еще раз прочесываю код, чтобы быть уверенным.Я также посмотрю на форматирование текстового файла, как он был предоставлен мне из внешнего источника.
ОБНОВЛЕНИЕ 3:
По предложению Джона Сондерса, я попробовал его только сценность преступника, и вот, это обеспечило ценность, как первоначально представлено.Я предполагаю, что это может иметь какое-то отношение к форматированию исходного текстового файла, возможно, к каким-то скрытым символам, которые как-то влияют на то, как читается значение.Я знаю, что это необычный случай.
ОБНОВЛЕНИЕ 4:
Попытка изменения текстового файла в Notepad ++, удаление некоторых пробелов и сохранение.Читатель потока теперь читает это хорошо.Это была очень странная проблема, и я согласен со всеми, что ReadLine () не должен был этого делать.Возможно, это была просто случайность с моими настройками или с кодировкой текстового файла.