Fortran如何将实数转换为Integer

Lio*_*Fan 3 fortran fortran77

例如,

SUBROUTINE DoSomething (Z,L)                             
  IMPLICIT DOUBLE PRECISION (A-H,O-Z)                               

  D=Z*77.1234567D0                                           
  L=D                                                      

  RETURN                                                         
 END     
Run Code Online (Sandbox Code Playgroud)

为了说话的目的,让我们假设D等于-1.5,在这种情况下L将等于-1或-2.换句话说,它是向上舍入还是向下舍入?

提前致谢.

fra*_*lus 6

在使用内部函数之后,转换为整数类型以进行赋值int.效果定义为(F2008 13.7.81)

如果A是真实类型,则有两种情况:如果| A | <1,则INT(A)的值为0; 如果| A | ≥1,INT(A)是整数,其大小是不超过A的大小且其符号与A的符号相同的最大整数.

在这种情况下,那么,L将取值-1.