使用NINT内在

时间:2016-06-28 03:33:35

标签: integer fortran classification

我有一个简单的代码:

program test
implicit none

integer*4 nxProjPad, cf

nxProjPad=185

cf = NINT nxProjPad/2

end

为什么当我编译它时,它在终端显示错误:

Unclassifiable statement at (1)

和" 1"指向cf。

1 个答案:

答案 0 :(得分:0)

内在函数nintreal调用参数舍入到最近的整数。您的参数是错误的数据类型。

您可以将nxProjPad声明为real或将您的通话参数更改为nxProjPad/2.0

在第一种情况下,可以安全地将整数分配给浮点数而不会丢失任何精度(但必须注意整数除法,例如1/2等于0而不是0.5)。在第二种情况下,只要其中一个/操作数是浮点数,就会使用浮点除法。

警告:如果您需要64位精度(双精度),则必须使用类型后缀修饰常量。