回 帖 发 新 帖 刷新版面

主题:如何用read读取格式不一样的小数

请问如何用read命令在文件中读取格式不太一样的数据,比如14500,1400,1500.1,14500.23这几个数据,类型为real
我发现如果用F9.1读取1400时候会读成140,有人知道怎么做吗?

回复列表 (共6个回复)

沙发

直接用read(xx,*) value 试过没

板凳


试过,不行,如果是整数的话,有可能读出的值小几个零。

3 楼


试过。

4 楼

是量级少了(可能是两个量级). 原因是fortran很旧很旧的标准. 如果是整数, 但按照浮点数读取认为后几位是小数点后的数值.
为了兼容性, 现在的编译器不得不继承这个不合理的设定. 所以浮点数一定要带小数点.

5 楼


为什么非得用有格式的读取,直接用read(*,*)不好么?

6 楼

read(*,*) 那要看用什么变量来接收了. 整数变量接收肯定没错,浮点数变量来接收就不确定了.
这个问题我很久以前也碰到过, 当时我认为ivf有bug. 后来在一本权威的数上看到了那个旧标准的解释.

尝试找了一下我的资料所在的页数, 由于至少是一年前看的了, 没有找到. 可能是在 <The_Fortran_2003_Handbook> 或者<Fortran 95 2003 explained> 上看到的.

我来回复

您尚未登录,请登录后再回复。点此登录或注册