我有一个简单的代码:
program test
implicit none
integer*4 nxProjPad, cf
nxProjPad=185
cf = NINT nxProjPad/2
end
为什么当我编译它时,它在终端显示错误:
Unclassifiable statement at (1)
和" 1"指向cf。
答案 0 :(得分:0)
内在函数nint
将real
调用参数舍入到最近的整数。您的参数是错误的数据类型。
您可以将nxProjPad
声明为real
或将您的通话参数更改为nxProjPad/2.0
在第一种情况下,可以安全地将整数分配给浮点数而不会丢失任何精度(但必须注意整数除法,例如1/2等于0而不是0.5)。在第二种情况下,只要其中一个/
操作数是浮点数,就会使用浮点除法。
警告:如果您需要64位精度(双精度),则必须使用类型后缀修饰常量。