作者laa7352 (Laa)
看板Fortran
标题Re: [问题] 如何在判别空缺的资料?
时间Mon Oct 19 01:55:37 2009
※ 引述《swm (研究室常驻程式)》之铭言:
: 标题: [问题] 如何在判别空缺的资料?
: 时间: Fri Oct 16 19:24:22 2009
:
:
: 请问各位,如果我的资料型态如下
:
: 2009 010223 975.6 1113.4 32.5
: ^^^^^
: 要如何用read读取空缺的资料
: 用浮点数的格式
: 然後在判别式中进行判别
:
: 我写到
: if(var3.eq.'')
: 可是这样似乎不管用
:
: 谢谢大家
:
:
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 140.122.81.146
: 推 laa7352:试试 if(var3 .eq. 0.0) 10/16 19:53
: → charlesdc:先看看你怎麽读进去的吧 搞不好连读都没读到@@ 10/17 00:12
: → charlesdc:楼上那样应该也是抓不到 就算起始值全部为0 浮点运算有 10/17 01:00
: → charlesdc:有效位数的问题 所以不可能有等於0.0的值 10/17 01:00
: → blc:因为浮点数的储存方式,是可以有等於0.0的值。 10/17 11:09
: → swm:抱歉忘记说明,我的读取方式read(1,'i4,3i2,3f7.1') 10/18 01:19
read(1,'i4,3i2,3f7.1')
你的格式第一个是i4,接着是3i2
但是你po的资料,第五个是空格
你的格式里在i4後面没有给他1X
1234567890 15 20 25 30 35
2009 010223 975.6 1113.4 32.5
^
以下是用read(1,'i4,3i2,3f7.1')输出的状况
2009 01022 3975.6 1113.0 0.4
var3等於0.4
以下是用read(1,'i4,1x,3i2,3f7.1')输出的状况
2009 1 223 975.6 1113.4 0.0
var3等於0.0
不知道是你笔误还是…?
另外
你一开始是用if(var3.eq.'')来判断
但是var3是real,不是字串,''这二引号有代表着被引号包里中字串的意思
也许你可以试着用if(var3 .eq. 0.0)来做判断
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.228.165.180
1F:→ charlesdc:fix or free format...其实他讲的东西很不齐全 很难帮 10/19 19:44