我对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)
提前谢谢
答案 0 :(得分:2)
是的,您得到27.000000000000000
,因为num
是一个整数,因此num\4
是一个整数。
要获得真实的精确结果,您只需编写d=1./4*num
是的,在Matlab中,这将是floor(num/4)
,因为num
是双精度浮点数,除非您另有指定。