在Fortran>=90中,最好的方法是使用内部函数来指定所需的精度-这既保证了可移植性,也保证了所需的精度。例如,获取整数i
和my_int
这将支持至少8个小数位数,您可以使用:
integer, parameter :: RegInt_K = selected_int_kind (8)
integer (kind=RegInt_K) :: i, my_int
已定义RegInt_K
(或您选择的任何名称)作为parameter
,您可以在整个代码中使用它作为符号。这也使得更改精度变得容易。
请求8或9个小数位数通常会得到一个4字节的整数.
integer*4
是一个常见的扩展,可以追溯到旧的FORTRAN来指定一个4字节的整数。虽然,这个语法不是而且从来都不是标准的Fortran。
integer (4)
或integer (RegInt_K)
是缩写integer (kind=4)
或integer (kind=RegInt_K)
. integer (4)
与integer*4
而且是不可移植的-语言标准没有指定种类的数值。大多数编译器使用kind=4
用于4字节整数-用于这些编译器integer*4
和integer(4)
将提供相同的整数类型-但也有例外,因此integer(4)
是不可携带的,最好避免。
REALS的方法也是类似的。
更新:如果您不想按照所需的精度指定数字类型,而是通过它们将要使用的存储来指定数字类型,则Fortran 2008提供了一个方法。reals和整数可以由后面的存储位数指定。use
使.ISO_FORTRAN_ENV
模块,例如,对于一个4字节(32位)整数:
use ISO_FORTRAN_ENV
integer (int32) :: MyInt
gfortran手册在“内部模块”下有文档。