我很难理解 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
每行只给我更多的星号),我尝试将格式语句移动到它自己的标记行...我似乎无法获得我想要的输出像。
我在这里想念什么?