我正在使用以下代码cos
计算pi/2
in Fortran
。
program precision_Fortran
IMPLICIT NONE
!!integer, parameter :: dp = kind(1.0d0) !!Gives same result as line below
integer, parameter :: dp = selected_real_kind(15, 307)
Real(dp), parameter:: pi=4.0*atan(1.0)
Real(dp) :: angle
angle = cos(pi/2.0)
write(*,*)'pi = ', pi
write(*,*)'angle = ', angle
end program precision_Fortran
gfortran
我使用和编译ftn95
。两者的输出是
pi = 3.1415927410125732
angle = -4.3711390001862412E-008
我如何在angle
这里获得更好的精度?例如在C++
我看到它的顺序是E-18
, 对于所有声明使用double
.
如果需要更多信息来更好地解释它,请告诉我。
额外:我正在使用的主要代码,物理方程具有三角项,存在精度问题,我不完全确定,但我怀疑是因为这个。所以,想检查一下上面是否可以以某种方式改进。不是专家Fortran
如此努力地弄清楚这一点。