我在 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
意图是允许代码指定精度时,我真的必须在代码本身之外指定我的实际大小吗?
最佳答案
抱歉。您必须将 _l
添加到号码分配中。
关于gfortran - 在 Fortran 中使用 selected_real_kind 来达到所需的最小精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11962810/