如何使用不同的编译器以及可能还有不同的计算机使用浮点算法获得相同的结果?
这是p.f90
program fl
implicit none
real(kind=8) :: a
a=9d0/10d0
write(*,*) a
end program
Run Code Online (Sandbox Code Playgroud)
使用gfortran -op p.f90,我得到0.90000000000000002
使用ifort -g -op p.f90,我得到0.900000000000000
有没有办法实现一致性?小东西传播并变得更大.
最好的问候亚历山德罗
我们都知道DO循环比FORALLFortran中的语句更强大.也就是说,您总是可以用a代替,而不是FORALL用a 代替DO.
怎么样的WHERE陈述和块?
我可以一直替换IF一个WHERE吗?是否总是可以用a编码条件和分叉WHERE,从而避免IF?