fortran95中有一个公式用来计算数组的位置,我在Python中复制并粘贴了相同的公式,但它们返回的结果不同。你知道吗
编辑: 在匆忙寻找答案时,我忘了显示变量的声明,但它们现在在Fortran代码示例中。事实证明,这个声明就是问题所在,感谢@SurestTexas和@albert在评论中指出了这一点,以及其他所有帮助过的人。你知道吗
Fortran中的公式:
integer(2) :: i, j
integer(4) :: e, n_x
n_x = 1162
j = ((-2.8 - (-8.4)) / 0.05) + 1
i = ((-4.5 - (-5.1)) / 0.05) + 1
e = ((i-1)*n_x+j)
我打印e
,结果是:12894
在Python中:
n_x = 1162
j = ((-2.8 - (-8.4)) / 0.05) + 1
i = ((-4.5 - (-5.1)) / 0.05) + 1
e = ((i-1)*n_x+j)
我打印e
,结果是:14057.0
正如你所看到的,他们完全一样,我不能找出什么是错误的,我可以如何解决这个问题,请帮助我。你知道吗
记住我的FORTRAN。我认为它假设基于变量第一个字母的数据类型,在partiali和j中是整数,所以为了在Python中模拟它,我做了:
给了我12895
补充:
有趣的是,在python3.5.3中,e被打印为14056.999999999。你知道吗
The implicit none statement is used to inhibit a very old feature of Fortran that by default treats all variables that start with the letters i, j, k, l, m and n as integers and all other variables as real arguments.
我不能评论,因为声誉不够,所以把它作为我研究的记录。你知道吗
相关问题 更多 >
编程相关推荐