回 帖 发 新 帖 刷新版面

主题:Fortran编程时,出现比如4.38264E-06是怎么回事

调试时发现有的变量出现诸如4.38264E-06之类的数值,这是怎么回事

回复列表 (共7个回复)

沙发

我没有完全理解你的意思,这样的数字在 Fortran 中不是很常见吗?

但是,我猜测,您认为变量的值应该是 零,因为你没有对其进行初始化操作(赋值),所以,它可能显示的是所用内存的(垃圾)信息。

板凳

[quote]我没有完全理解你的意思,这样的数字在 Fortran 中不是很常见吗?

但是,我猜测,您认为变量的值应该是 零,因为你没有对其进行初始化操作(赋值),所以,它可能显示的是所用内存的(垃圾)信息。[/quote]
我把一个数组的初值都赋成了0,但在后面做循环时,在中间,也就是循环做到一半的时候,我检查了一下这个数组里边的数值,有几个元素出现了4.38452E-06之类的字眼儿,不过也有是0的元素,这点我很是不懂

3 楼

这个只能具体看代码了。

4 楼

很可能在循环过程中,某些值被update了。

5 楼


thanks

6 楼

计算机舍入误差。
建议使用新的定义格式,采用双精度定义。在数的后面加d0
real::a=3.0d0e-5
则出现的结果没有舍入误差。自己去实验吧

7 楼

[quote]计算机舍入误差。
建议使用新的定义格式,采用双精度定义。在数的后面加d0
real::a=3.0d0e-5
则出现的结果没有舍入误差。自己去实验吧[/quote]


改正您的例子
real::a=3.0d-5
但您这个例子加上 D 有用吗?我看您亦需要好好看看浮点数相关知识了。

我来回复

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