将REAL输出转换为INTEGER

时间:2016-10-28 17:28:58

标签: integer fortran

PROGRAM ONE
IMPLICIT NONE

REAL::num1,num2,num3

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

STOP
END PROGRAM ONE

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

1 个答案:

答案 0 :(得分:5)

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

program one

  implicit none

  real :: num1, num2, num3

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

end program one

请注意,int函数只是截断其实参。更确切地说,当int(a)类型为a时,real计算如下:

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

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