将REAL输出转换为INTEGER

Mas*_*ter 1 fortran integer

PROGRAM ONE
IMPLICIT NONE

REAL::num1,num2,num3

READ(*,*)num1,num2
num3=num1+num2
WRITE(*,*)num3

STOP
END PROGRAM ONE
Run Code Online (Sandbox Code Playgroud)

WRITE语句显示“ num3”的实数。我该怎么做,以使其显示整数值,并且不允许在声明中将其更改为整数。

Wil*_*cat 5

real可以integer使用int内在函数将数字转换为一个数字。

program one

  implicit none

  real :: num1, num2, num3

  read (*, *) num1, num2
  num3 = num1 + num2
  write (*, *) int(num3)

end program one
Run Code Online (Sandbox Code Playgroud)

请注意,该int函数只是截断其实参。更精确地,int(a)何时ais类型real的计算如下:

  • | a | <1,int(a)值为0;
  • | a | > = 1 int(a)是整数,其大小是不超过的最大整数,a并且其符号与的符号相同a

如果这不是您需要的,请考虑使用ceilingfloornint固有的。第一个返回大于或等于其实参的最小整数,第二个返回小于或等于其实数的最大整数,而第三个返回最接近的整数。