我很難在Fortran格式化語句中包裝頭部。Fortran將我的輸出輸出爲星號 - 爲什麼?
沒有格式化我的輸出,這是我做的(一個循環裏面,所以這種情況發生過幾次):
write(*,*) t*1E9
t
這裏是real*8
。輸出是我期望的正是 - 增量爲0.1,具有一定的舍入誤差:
0.0000000000000000
0.10000000000000001
0.20000000000000001
0.29999999999999999
0.40000000000000002
0.50000000000000000
0.59999999999999998
0.69999999999999996
0.79999999999999993
0.89999999999999991
0.99999999999999989
現在,我嘗試添加格式語句:
write(*, '(F1.2)') t*1E9
和(與一切同),而不是我只得到星號在我的輸出:
**
**
(etc...)
我試圖就如何實現這一工作的閱讀了,我想不通爲什麼發生這種情況。我嘗試過更多格式的數字空間(F15.15
只是給了我更多的星號),我試着將格式語句移動到它自己的標籤行......我似乎無法得到輸出結果,喜歡。
我在這裏錯過了什麼?
謝謝!這解釋了很多=)然而,它並沒有幫助我 - 當我運用相同的原則時,儘管有例如對於其他雙打(即「真實* 8」)的E5.4,一列的數量級爲1e-2 - 1e-3,另一列的數量級爲1e2,它給出那些列的星號(時間列按預期工作)。我現在的整個格式字符串:'F4.2,E10.8,E10.8'。 –
對於E格式,字段寬度必須至少比小數點多7個,例如E15.8。四位爲指數,兩位爲領導0.一位爲可能的「 - 」。我通常增加一個額外的空間,所以數字不會一起運行,E16.8 .. – agentp
這解釋了它 - 謝謝! –