整数类型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占位符写法。