2

我在 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意图允许代码指定精度时,我真的必须在代码本身之外指定我的实际大小吗?

4

1 回答 1

2

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

于 2012-08-15T01:21:46.743 回答