我是一名大学讲师,本学期我将使用 Fortran 90/95 作为编程语言教授数值方法课程。课程一开始就从数字的表示开始,我想谈谈 REAL(4)、REAL(8) 和 REAL(16) 可以表示的数字的限制。我打算在 OnlineGDB 上使用以下代码(这样学生就不必在计算机上安装任何东西,这在远程学习时可能会很痛苦):
Program declare_reals
implicit none
real(kind = 4) :: a_huge, a_tiny ! single precision ; default if kind not specified
!real(4) :: a ! Equivalent to real(kind = 4) :: a
a_huge = huge(a_huge)
print*, "Max positive for real(4) : ", a_huge
a_tiny = tiny(a_tiny)
print*, "Min positive for real(4) : ", a_tiny
print*,
End Program declare_reals
Run Code Online (Sandbox Code Playgroud)
通过这段代码,我得到
Max positive for real(4) : 3.40282347E+38
Min positive for real(4) : 1.17549435E-38
Run Code Online (Sandbox Code Playgroud)
但是,如果我写 …