Fortran Coder

标题: 读取浮点型文本资料,输出结果为整形 [打印本页]

作者: 麒麟    时间: 2017-2-16 11:49
标题: 读取浮点型文本资料,输出结果为整形
这个代码是从网上下的,用以科研处理!

输出结果如下

但是原始资料中是浮点型,如7.2或2.6,现在变成了7和2,修改输出语句“int(line(out_id))”为“real(line(out_id))”,或是去掉“int”以后,程序不输出数据!
还请各位大侠看看,附上资料

diamond1_batch.rar

123.59 KB, 下载次数: 6


作者: fcode    时间: 2017-2-16 12:09
write(20,'(2(2x,a),2x,f9.3)')stid,"20"//trim(fname), line(out_id)
作者: 麒麟    时间: 2017-2-16 13:57
fcode 发表于 2017-2-16 12:09
write(20,'(2(2x,a),2x,f9.3)')stid,"20"//trim(fname), line(out_id)

对了对了!十分感谢,但是还想知道为什么是写成f9.3,去掉int,就行了?前面“write(nowstid,'(i5)') int(line(1))”不改对输出也没影响,那这句话是什么意思呢?


作者: fcode    时间: 2017-2-16 15:14
f 编辑符针对浮点数
i 编辑符针对整数
作者: 麒麟    时间: 2017-2-16 15:26
fcode 发表于 2017-2-16 15:14
f 编辑符针对浮点数
i 编辑符针对整数

恩,这个我知道,曾经也改成过f3或f4,同时去掉前后两个“int”,结果就是不对。
主要还是对这个line(out_id)这个变量是怎么来的不清楚?
作者: fcode    时间: 2017-2-16 15:29
因为你希望输出浮点数,而 line 本身就是浮点数,不需要 int,也不能够 int。
f 编辑符针对浮点数,那么 f9.3 就可以了。

当然其他的宽度也可以,比如 f8.3 , f7.4,只要宽度够就可以,不一定必须 f9.3
作者: 麒麟    时间: 2017-2-16 16:00
fcode 发表于 2017-2-16 15:29
因为你希望输出浮点数,而 line 本身就是浮点数,不需要 int,也不能够 int。
f 编辑符针对浮点数,那么 f9 ...

明白了!谢谢您!主要是没法把掌握的理论用在实际,而且不是自己写的程序,理解也不清!
同时感谢这么好的论坛!




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2