Fortran:整数太大了

ast*_*erd 1 fortran

我将一个整数设置为小于其最大值的值,但是收到的错误是它太大了.为什么是这样?这是一个示例程序.

program max_int

integer, parameter :: i32 = selected_int_kind(32)

integer(kind = i32) :: my_int

!The largest integer of this kind
print*, huge(my_int)

!This works
my_int = 100000

!This doesn't, and gives an error.
!my_int = 1000000000000

print*, my_int

end program
Run Code Online (Sandbox Code Playgroud)

dww*_*ork 6

您需要追加i321000000000000这样的:1000000000000_i32.gfortran抱怨说这个数字太大了.1000000000000是一个短整数,而不是超长整数.1000000000000_i32是一个超长整数.它没有抱怨变量,它抱怨常数.