我正在使用StreamReader對象的ReadLine函數從文本文件中讀取十進制值。我覺得奇怪的是一些值有三位小數點後的所有零,即「-93.000」,但是當我調試時,我注意到流讀取器將只讀取先前的值爲「-93.00」。我不確定爲什麼會發生這種情況,它會讀取所有零的小數點後兩位的值,即「-85.00」,就好了。我需要能夠讀取整個值作爲驗證目的,否則在我的程序中會報告不準確的結果。StreamReader ReadLine函數
發生此行爲的任何想法?有沒有其他解析文本文件的方式來保留原始字符串?謝謝。
UPDATE:
Line = "-93.00\t
-99.99\t
-85.00"
:看完第一行之後
-93.000 {\Tab}
-99.99 {\Tab}
-85.00
行變量:讀取文本文件
string Line = sr.ReadLine();
的樣本值,在文本文件中
代碼
UPD ATE 2:
我已經在最近一個小時裏通過了這幾次。我試圖仔細觀察線路設置的位置,這是我縮小到的範圍。我會再次梳理代碼,以確保。我還會查看由外部提供給我的文本文件的格式。
更新3:
每約翰·桑德斯的建議,我與剛剛罪魁禍首值和LO嘗試過了,你看它提供的價值最初呈現。我猜測它可能與原始文本文件的格式有關,也許是某些隱藏字符會影響值的讀取方式。我知道這是一個不尋常的案例。
UPDATE 4:
試圖修改文本文件在記事本++,去掉了一些空間和重新保存。流讀者現在讀它很好。這是一個非常奇怪的問題,我同意其他人認爲ReadLine()不應該這樣做。也許這也只是我的設置或文本文件編碼的僥倖。
'ReadLine'方法不知道數據的類型是什麼。請顯示您用來獲取數字的代碼。 – 2011-05-06 16:49:34
這不能來自'ReadLine()'字符串。我認爲在看到像這樣的事情之前,你必須轉換成雙倍。 – 2011-05-06 16:52:45
它必須是你在代碼中分割值的方式。 'ReadLine'將**從來沒有**對我們的開發者做這種事情! – 2011-05-06 16:54:59