file - 对于三位数的指数,Fortran在输出中删除 'E'

标签 file format output fortran90 exponential

我刚从Python进入Fortran90,老实说,到目前为止,最困难的部分已经习惯了用于编写输出的格式化代码。我遇到了一个格式问题,我似乎无法用谷歌搜索或弄乱我的出路,我已经在该网站上搜索了答案,但没有发现任何有用的信息。

我正在计算并将输出写入文件。我正在使用以下代码格式化计算结果

write(file, ('13ES11.2)') kappa



有些值很小,所以我最终得到三位数的负值。所以应该是这样的

10e-100



但是相反,我在输出文件中得到了这个

10-100



这对我没有帮助,因为我还有另一个程序需要读取该文件并了解这些数字是指数。

我会很感激任何人在这方面的帮助。

最佳答案

尝试使用ES11.2E3的格式规范。这允许指数(总是)有三个位置。

Fortran格式的输入和输出具有“固定列宽”的强烈 flavor 。如果没有指数字段宽度规范,则“默认”宽度为2。如果指数部分要求的位置比该位置多,则借用通常由E占据的列以至少允许输出继续而不会丢失信息。如果指数输出要求比默认值多两个,那么您会看到星星。

请注意,如果您的其他程序是用Fortran编写的,则它将理解带有E的这些奇怪的实数。

诸如G0.3之类的编辑描述符为这种奇怪现象提供了部分解决方法,但是不能保证您使用科学格式。

关于file - 对于三位数的指数,Fortran在输出中删除 'E',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24004824/

相关文章:

Linux命令查找目录中所有具有相同名称但不同扩展名的文件?

c# - 时间(日期时间)格式有条件地显示分钟

c++ - 打开 .dat 文件时遇到问题

android - intel XDK (.apk) 的输出太大了! (安卓)

MySQL:如何仅显示最小计数而不使用限制?

python - Django:在通用 View 中提供下载服务

file - 代码点火器 "file_exists($filename)"

java - 如何获取所选文件和文件夹的实际大小?

java 捕获数字类型上的 NumberFormatException

format - 如何使用 Racket 格式化输出