我刚从Python开始学习Fortran90,老实说,到目前为止最困难的部分是习惯了用于编写输出的格式化代码。我遇到了一个格式问题,我似乎无法谷歌或篡改我的方式,我已经搜索了这个网站的答案,但没有发现任何帮助。
我正在进行计算,并将输出写入文件。我用以下代码格式化计算结果
写(文件,('13ES11.2)')
有些值非常小,所以我最终得到了三位数的负值。所以应该是这样的,
10e-100
但是我把这个放在输出文件中,
10-100
这对我没有帮助,因为我有另一个程序,需要读取那个文件,并且理解这些数字是指数。
我很感谢任何人在这方面的帮助。
发布于 2014-06-03 00:16:30
尝试ES11.2E3的格式规范。它允许指数有三个位置(总是)。
对于Fortran格式化的输入和输出,有很强的“固定列宽度”的味道。如果没有指数字段宽度规范,“默认”宽度为2。如果指数部分需要多一个位置,那么通常由E占据的列至少允许输出继续而不丢失信息。如果指数输出需要比缺省值多两个,那么你就会看到星星。
请注意,如果您的另一个程序是用Fortran编写的,那么它就会理解这些带有缺失E的奇怪实数。
编辑描述符(如G0.3 )为这种奇怪的情况提供了部分解决办法,但不能保证您的格式是科学的。
https://stackoverflow.com/questions/24004824
复制相似问题