[問題] 從檔案讀備精度實數(如何控制格式)

看板Fortran作者 (蒼)時間13年前 (2011/05/11 14:40), 編輯推噓3(304)
留言7則, 3人參與, 最新討論串1/3 (看更多)
我有個關於讀檔的問題想要請教大家。 現在有一個檔案名稱為data,內容有四行,如下: -3.05430d0 7.61854d0 1.47665d0 -11.92365d0 現在,我希望可以一行一行去讀取這四個數字,程式碼大略是以下這樣: filename = '/home/data' open(unit=10,file=filename) Do coefi = 1,4 read(10,"(D17.11)") coef write(*,"(D17.11)") coef If ( coefi == 1 ) sss1 = coef If ( coefi == 2 ) sss2 = coef If ( coefi == 3 ) sss3 = coef If ( coefi == 4 ) sss4 = coef 執行完之後,發現這樣寫,最後它讀到的數字會是: -.30543000000D+01 0.76185400000D+01 0.14766500000D+01 -.11923650000D+02 而不是原先檔案裡頭的: -3.05430d0 7.61854d0 1.47665d0 -11.92365d0 不曉得為什麼,它會讓所有的數字都移到小數點後面, 但是我需要的是,「執行完之後」,出現的結果就是原先檔案的內容,也就是: -3.05430d0 7.61854d0 1.47665d0 -11.92365d0 請問大家,要如何處理,它才不會最後列印到螢幕的結果,都是零點多少開頭。 謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.4.195

05/11 16:52, , 1F
我眼睛應該還沒瞎吧>< 你的數據沒問題啊!! 繼續趕論文.
05/11 16:52, 1F

05/11 16:53, , 2F
你的數據沒問題啦~~請仔細看 如果在意格式的話輸出時也
05/11 16:53, 2F

05/11 16:53, , 3F
可以控制 至於怎麼寫翻一下書吧我也忘了
05/11 16:53, 3F

05/11 21:43, , 4F
原來檔案裡數字都是固定格式嗎? 不是的話你可以把那些數字
05/11 21:43, 4F

05/11 21:45, , 5F
都當成是字串XD 固定格式的話用f8.5應該可以,但是後頭d0要
05/11 21:45, 5F

05/11 21:46, , 6F
自己加上去
05/11 21:46, 6F

05/11 23:27, , 7F
果然XD 今天本來要跟你說得就是輸出的格式可能有問題
05/11 23:27, 7F
文章代碼(AID): #1DoYzM21 (Fortran)
文章代碼(AID): #1DoYzM21 (Fortran)