1035326373 发表于 2014-10-10 09:53:45

输出为1750254-6这种格式,求助

我在用fortran处理数据后,需要输出数据。要求的输出的格式这样的:1750254-6,用科学计数法表示为:1.750254E+00,也就是说小数点和指数符号E没有了,指数部分减小了6个量级。
求详细解决办法,谢谢。

fcode 发表于 2014-10-10 11:44:14

Program www_fcode_cn
Implicit none
write( * , * ) W( 1.750254E+00 )

contains
Character(len=9) Function W( r )
    real :: r
    character(len=11) :: t
    write( t , '(es11.6e1)' ) r*1e-6
    W = t(1:1) // t(3:8) // t(10:11)
End Function W
End Program www_fcode_cn

1035326373 发表于 2014-10-14 21:39:05

fcode 发表于 2014-10-10 11:44
Program www_fcode_cn
Implicit none
write( * , * ) W( 1.750254E+00 )


非常感谢。。

1035326373 发表于 2014-10-16 15:18:45

fcode 发表于 2014-10-10 11:44
Program www_fcode_cn
Implicit none
write( * , * ) W( 1.750254E+00 )


如果要将转换后的数值写成二进制的形式,不利用字符型变量,可以实现吗?

楚香饭 发表于 2014-10-16 15:48:46

二进制是无格式的,直接写就行了。输出成文本,则必须通过字符串变量
页: [1]
查看完整版本: 输出为1750254-6这种格式,求助