如何获得正确的值?
我从循环得到的este值是:2.71828183actdif = actval - este
当我减去时,actdif值为:-4.59045
整个计划是:
PROGRAM est_e
c IMPLICIT NONE
INTEGER n, lcv
DOUBLE PRECISION este, reldif, actdif, factor, actval
actval = 2.718281828D0
n=1000
factor = 1
este = 1
DO lcv = 1, n, 1
factor = factor * lcv
este = este + 1/factor
END DO
actdif = actval - este
reldif = actdif/actval
print *, 'The estimate of e is: ', este
print *, 'Actual difference is:', actdif
print *, 'Relative difference is:', reldif
pause
END PROGRAM est_e
答案 0 :(得分:2)
你只是误读了你的输出。您声称输出为:
-4.59045
这种说法与屏幕截图相矛盾。实际输出是:
-4.5904569E-10
这是一个非常小的数字,非常接近于零。另请注意,您的实际值指定为10位有效数字,与您的程序报告的相对错误相符。换句话说,您的估计似乎是准确的,并且您的程序行为正确。