打印双精度数字,并在指数中指定位数



我想打印出0.3194D-114 .有什么办法可以做到这一点吗?

我尝试使用

write(111,"(2I4, D30.20E3)") i, j, ez1(i,j,k)

但是我收到一个错误错误:

格式说明符中所需的时间段

根据 Fortran 2008 标准 (Cl. 10.3.2),D编辑描述符不允许使用指数宽度:

1 编辑描述符

是数据编辑描述符(data-edit-desc), 控件编辑描述符 (control-edit-desc) 或字符串编辑 描述符(char-string-edit-desc)。

R1007 data-edit-desc       is I w [ . m ]
                           [...]
                           or D w.d

只允许为EENESG编辑描述符指定指数(相同的子句和段落):

                           or E w.d [ E e ]
                           or EN w.d [ E e ]
                           or ES w.d [ E e ]
                           or G w [.d [ E e ] ]

如果你可以接受一个表示指数的E(而不是D),你可以使用

write(111,"(2I4, E30.20E3)") i, j, ez1(i,j,k)

最新更新