我刚刚从Python开始使用Fortran90,老实说,到目前为止最难的部分是习惯用于编写输出的格式化代码。我遇到了一个格式问题,我似乎无法谷歌或摆弄我的方式,我已经搜索了这个网站的答案,但没有找到任何有用的。
我正在进行计算并将输出写入文件。我正在用以下代码格式化计算结果
write(file, ('13ES11.2)') kappa
有些值非常小,所以我最终得到三位数的负值。所以应该是这样的
10 e - 100
但是在我的输出文件中,我得到了这个
10 - 100
这对我没有帮助,因为我有另一个程序需要读取该文件并理解这些数字是指数。
我非常感谢任何人的帮助。
尝试ES11.2E3
的格式规范。这允许(总是)三个位置的指数。
对于Fortran格式的输入和输出有一种强烈的"固定列宽"的味道。如果没有指数字段宽度规范,"默认"宽度为2。如果指数部分需要比这多一个位置,则借用通常由E占用的列,以至少允许输出继续而不丢失信息。如果指数输出需要比默认值多两个,那么您将看到星号。
请注意,如果您的其他程序是用Fortran编写的,那么它将理解这些缺少e的奇怪实数。
像G0.3
这样的编辑描述符提供了解决这个问题的部分方法,但是不能保证格式的科学性。