回 帖 发 新 帖 刷新版面

主题:奇怪

比如计算公式

回复列表 (共6个回复)

沙发

有没有想过
D0=0.500000000000000
H(i,j)=1.00000000000000
ysta(j)=0.9750000000000000
写成
D0=0.5D0
H(i,j)=1.0D0
ysta(j)=0.975D0

板凳

多看看书和帮助文档,写这标题,有意义吗?
1。 你的 literal constant 是 double precision 吗?
2。 double precision 有 16 位精度吗

3 楼


是呀,你不是看到了吗?但结果没有为1.25E-002 呀

4 楼

ys(100)
下面你给出的是YS(I,J), 而且i, j没有定义.
我改成

program main
implicit none
real*8 D0, H(100,50), ysta(100), ys(100)
D0=0.5d0
H(1, 1)=1.0d0
ysta(1)=0.975d0
YS(1)=D0*(H(1,1)*(1.d0-YSTA(1))-1.d0)
write(*, *) YS(1)
end

 -0.487500000000000
Press any key to continue

这个值没问题啊!~

5 楼


我的i,j定义了。在我的程序首部,
INTEGER I ,J

6 楼

按你最后修改的代码进行了改动, 最后一位小数不为零.  最后位置的数值应该就是计算机二进制表示实数进行计算的时候, 属于合理范围.

我来回复

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