fortran 佛说如是甚深经典。我从昔来所得慧眼。未曾得闻如是之经。
手气不错
Article

006.integer_整数类型

2026年5月12日入门级

整数类型integer用来保存整数,适合表示数量、编号、次数、步长、索引等离散值。

本文代码

program integerDemo
  implicit none
  integer :: a
  integer :: b
  integer :: c
  integer :: calcPiAddE, calcPiSubE, calcPiMulE, calcPiDivE
  calcPiAddE=3.14+2.71 ! 右侧先得到5.85,赋给integer时转换成5。
  calcPiSubE=3.14-2.71 ! 右侧先得到0.43,赋给integer时转换成0。
  calcPiMulE=3.14*2.71 ! 右侧先得到约8.5094,赋给integer时转换成8。
  calcPiDivE=3.14/2.71 ! 右侧先得到约1.16,赋给integer时转换成1。
  a = 3
  b = 4
  c = 5
  print '(A,I0,A,I0,A,I0)', "a=",a,", b=",b,", c=",c
  print *,"经四则运算的pi、e的结果:"
  print *,"calcPiAddE=",calcPiAddE
  print *,"calcPiSubE=",calcPiSubE
  print *,"calcPiMulE=",calcPiMulE
  print *,"calcPiDivE=",calcPiDivE
end program integerDemo

编译运行

(base) hong@hongdeMacBook-Pro 006.integer % gfortran exampleInteger.f90
(base) hong@hongdeMacBook-Pro 006.integer % ./a.out                    
a=3, b=4, c=5
 经四则运算的pi、e的结果:
 calcPiAddE=           5
 calcPiSubE=           0
 calcPiMulE=           8
 calcPiDivE=           1
(base) hong@hongdeMacBook-Pro 006.integer % 

结果分析

  • a b c的值就是用整数赋值,输出正确。
  • 数学上3.14+2.71=5.85,程序中右侧表达式先按实数运算得到5.85;因为calcPiAddE是integer类型,赋值时结果被转换为整数,只保留5,小数部分被截断,并非四舍五入。
  • 数学上3.14-2.71=0.43,程序中右侧表达式先按实数运算得到0.43;因为calcPiSubE是integer类型,赋值时结果被转换为整数,只保留0,小数部分被截断,并非四舍五入。
  • 数学上3.14*2.71=8.5094,程序中右侧表达式先按实数运算得到8.5094;因为calcPiMulE是integer类型,赋值时结果被转换为整数,只保留8,小数部分被截断,并非四舍五入。
  • 数学上3.14/2.71=1.1586,程序中右侧表达式先按实数运算得到1.1586;因为calcPiDivE是integer类型,赋值时结果被转换为整数,只保留1,小数部分被截断,并非四舍五入。

知识点总结:

  • 同类型变量可以在同一条类型声明语句中依次声明,如integer :: calcPiAddE, calcPiSubE,变量名之间用,分隔。注意逗号的作用是分隔变量名,每个逗号后都必须跟一个新的变量名,不可留空,最后一个变量名后不能再写逗号
  • 赋值时,程序先根据右侧表达式中操作数的类型进行计算;然后再把计算结果转换为左侧变量的类型。若左侧变量是integer,而右侧结果是实数,则小数部分会被截断后存入整数变量
  • 此外,print * 后面是输出列表,多个输出项之间用逗号分隔;fortran不使用c语言printf%d占位符写法。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注