Fortran 整数加倍

fortran integer to double

我对fortran有疑问。在以下代码中:

program p
integer num
real*8 d
num=111
d=dble(num/4) 
print*, d 
end program p

我得到 27.000000000000000。是因为 num 是整数所以 num/4 必须是同一类型吗? 这是我必须在 Matlab 中翻译的另一段代码的一部分:在这种特殊情况下,我可以将其翻译为 num/4 截断吗?

floor(num/4)

提前致谢

是的,你得到 27.000000000000000 因为 num 是一个整数,因此 num 是一个整数。

要获得真正精确的结果,您只需编写 d=1./4*num

是的,在 Matlab 中这将是 floor(num/4),因为 num 是双精度浮点数,除非您另有说明。