相同的方程给出了不同的答案:PYTHON

时间:2014-11-30 12:40:03

标签: python math python-3.x

我有两个数组:比如G [] []和C [] []。

我按以下方式处理数组:

G[i][j] = G[i][j] + 2.0 * C[i][j] * (1.0 - x/y) * z

其中x,y,z是一些变量,i跨越(0,100)和j跨越(0,10)。所以,基本上它们都是大型阵列。

我在我的Windows计算机和Linux计算机上运行python代码,但是我得到了不同的结果,Windows'结果是好的'结果。

我无法找到Linux中数学不同的原因以及我应该如何调整'结果与窗户匹配'结果。

所有数据类型都是浮动的。

示例值:

PC1: 1.1362725450901805 
PC2: 1.1643972063283112

虽然在进一步的计算中,结果会有很大的变化:

PC1: -2.something
PC2: 0.something

1 个答案:

答案 0 :(得分:1)

问题是如果参数是整数,则python 2中的“/”是整数除法,而在python 3中,“/”是真正的除法。

你可以绕过这个
from __future__ import division

或确保每个分区中至少有一个参数是浮点数。