在Fortran中使用selected_real_kind来实现所需的最小精度

时间:2012-08-15 00:51:38

标签: gfortran

我在Mac OS X 10.8上使用gfortran 4.7.1使用特定的精度编译一个简单的程序:

program simple
  implicit none
  integer, parameter :: l = selected_real_kind(18,100)
  real(kind=l) :: myNum
  myNum = 0.123456789123456789
  print '(f18.12)', myNum
end program simple

当我编译并运行时,我得到0.123456791043这显然表明我没有得到我要求的精度。

但是,如果我使用-fdefault-real-8进行编译,我会得到正确答案。显然,我可以继续使用该选项,但我不禁想知道这是一个错误还是我错过了一些理由。当selected_real_kind意图允许代码指定精度时,我是否真的必须在代码本身之外指定我的实际大小?

1 个答案:

答案 0 :(得分:1)

对不起。您必须将_l添加到号码分配中。