麒麟 发表于 2017-2-16 11:49:11

读取浮点型文本资料,输出结果为整形

这个代码是从网上下的,用以科研处理!

输出结果如下

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

fcode 发表于 2017-2-16 12:09:00

write(20,'(2(2x,a),2x,f9.3)')stid,"20"//trim(fname), line(out_id)

麒麟 发表于 2017-2-16 13:57:37

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:50

f 编辑符针对浮点数
i 编辑符针对整数

麒麟 发表于 2017-2-16 15:26:25

fcode 发表于 2017-2-16 15:14
f 编辑符针对浮点数
i 编辑符针对整数

恩,这个我知道,曾经也改成过f3或f4,同时去掉前后两个“int”,结果就是不对。
主要还是对这个line(out_id)这个变量是怎么来的不清楚?

fcode 发表于 2017-2-16 15:29:22

因为你希望输出浮点数,而 line 本身就是浮点数,不需要 int,也不能够 int。
f 编辑符针对浮点数,那么 f9.3 就可以了。

当然其他的宽度也可以,比如 f8.3 , f7.4,只要宽度够就可以,不一定必须 f9.3

麒麟 发表于 2017-2-16 16:00:48

fcode 发表于 2017-2-16 15:29
因为你希望输出浮点数,而 line 本身就是浮点数,不需要 int,也不能够 int。
f 编辑符针对浮点数,那么 f9 ...

明白了!谢谢您!主要是没法把掌握的理论用在实际,而且不是自己写的程序,理解也不清!
同时感谢这么好的论坛!
页: [1]
查看完整版本: 读取浮点型文本资料,输出结果为整形