回 帖 发 新 帖 刷新版面

主题:问一个精度问题

program test
  implicit none
   real(8) :: a, b, c
   
   a = 5.111111111111111111
   b = 6.
   c = a*b
   write(*,*)cmplx(a,b), a*b, c
end


用ifort编译后得结果
(5.111111,6.000000)   30.6666669845581        30.6666669845581

用gfortran编译的结果
(  5.1111112    ,  6.0000000    )   30.666666984558105        30.666666984558105  

用g95编译结果
(5.111111,6.) 30.666666984558105 30.666666984558105

后几位不确定,请问如何解决

回复列表 (共1个回复)

沙发

单精度 6 到 7 位 有效数字。

a = 5.111111111111111111D0
   b = 6.0D0

我来回复

您尚未登录,请登录后再回复。点此登录或注册