我有一个真正的CURRENTTIME
,我想将其转换为名为TIMEDIR
的字符串。由于 TIMEDIR
必须更改其大小,因此它是可分配的。据我所知,分配工作正常。另外,我检查了 CURRENTTIME
有一个值。
ALLOCATE(CHARACTER(LEN=1)::TIMEDIR)
WRITE(TIMEDIR, '(F1.0)') CURRENTTIME
但是
WRITE(*,*) TIMEDIR
输出*
,它应该是0
(CURRENTTIME
是0.0000000)。我不知道问题出在哪里。
最佳答案
您将输出写入 float 。 float 总是有一个小数点或指数以区别于整数。因此, float 的最窄输出可能是 0.,即 2 个字符,并且 F1.0 的格式将始终导致打印“*”,因为字段宽度不足以容纳正在写入的内容。
关于fortran - 将实数写入字符串时输出为 '*',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41571450/