FORMAT 函数中的双精度

Double precision in FORMAT function

我没有任何 Fortran 编程经验,但我在学校的一门课程中,我们必须将一个程序从 Fortran 翻译成 Java。我遇到问题的代码行是

 295   FORMAT(1X,'Y(X) =',D25.16,' * X ',A1,D25.16,///)

我认为不一定需要整行,但我想为某些上下文提供整行。说 D25.16 的部分有点让我失望,因为我似乎无法在任何地方找到有关此的任何信息。我最初认为它正在格式化一个双精度数字,以便能够在 .(点)的左侧有 25 位数字,在右侧有 16 位数字,但我似乎找不到任何关于这意味着什么的信息和不知道我是对还是错。我只是想看看是否有人可以对它的作用给出一些见解。

D 编辑描述符与 E 编辑描述符密切相关(阅读 material 可能更容易找到),但不同于 F 编辑评论中提到的描述符。

ED 指定实数将以指数表示。对于使用 E 的输出,数字可以写成

+0.1234e+12

对于D25.16你是正确的小数点后的位数是16(好吧,小数部分),但它是25的字段的总宽度,而不是数字左边的数字。 [左边是 0 或什么都没有。] 字段宽度有来自(强制性)符号、(可选)前导 0、(可能可选)指数标记、(强制性)指数符号和(至少)两位指数。

如果有三个指数数字,则指数标记丢失(导致诸如 .1234+110 之类的事情)。

DE有区别:

  • D 不允许指定指数宽度(参见,E15.5E5);
  • D 允许(但不强制)使用 D 作为指数标记(而不是 E)。