fortran整数加倍

时间:2017-04-26 22:46:45

标签: integer fortran double truncate

我对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)

提前谢谢

1 个答案:

答案 0 :(得分:2)

是的,您得到27.000000000000000,因为num是一个整数,因此num\4是一个整数。

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

即可

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

相关问题