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
是双精度浮点数,除非您另有说明。
我对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
是双精度浮点数,除非您另有说明。