作者sjgau (sjgau)
看板Fortran
标题Re: [问题] 关於误差估计的问题
时间Thu May 20 10:47:30 2010
底下的程式
1.0 + 1e-6
可以算的出来
1e-7
有点 勉强
1e-8
算不出来
也就是说,FORTRAN 的 REAL,
DEFAULT 是四个 BYTES, 使用 23个 BITS
来表示 浮点数的精确度
大概就是有效位数 六到七位,
( 1.0 + 1E-8 ) 的结果,
还是 1.0
所以,。。。
program VF1035
implicit none
real x, y, z
integer ct1
x= 4.0*atan(1.0)
ct1= 0
print *, 'ct1, x= ', ct1, x
pause
y= x + 1.0
! y > x
do while (y .GT. x)
x= x*(1.0 + 1e-8)
y= x + 1.0
ct1= ct1 + 1
end do
! y <= x
print *, 'x, y, ct1= ', x, y, ct1
end program VF1035
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.20.182.245