FORTRAN77遗产代码解析

在解析部分FORTRAN77遗产代码时发现,部分代码段有点匪夷所思,比如:

1      i = (x(n) * xinv) + 10000.
2      i = i - 9999
3      j = (y(n) * yinv) + 10000.
4      j = j - 9999
5      k = (z(n) * zinv) + 1

在第一行中加10000, 第2行中减9999,为什么不直接和第5行代码一样,+1呢?

是和double型和int型转换有关嘛?i,j,k为integer; x(n),y(n),z(n)为real型,xinv,yinv,zinv为real型。

你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。

​​​​因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

有以下几种可能:
1、故意的,让你看不懂。老外的开源代码经常有这种问题;
2、考虑数值计算的误差问题。这个具体得看前面两个数的乘积结果是多大。