2

私は2つの値でロードしたデータセットから持っています。

x1=5.904e-16

x1=1.048576e-14

確かにこれらは小さな数字ですが、私がやりたいのはそれらを平均することだけです。

avg = 1/2*(x1+x2)

しかし、これは avg = 0 を与えます

アー!

4

2 に答える 2

4

Python 2 を使用していると仮定します。

両方の引数が整数の場合、Python 2 は整数除算を使用します。つまり、結果も整数になります。例えば:

print 1/2
# 0
print 5/2
# 2

これを克服するには、float に相当する ( 0.5) を使用するか、除算の引数の 1 つ (1またはのどちらでも2構いません) を float に変更して、float も返すようにします。

print 1.0/2
# 0.5
print 1/2.0
# 0.5
print 1.0/2.0
# 0.5

nneonneo が述べたように、次のように合計を除算に直接入れることもできます。

(x1+x2)/2.0

これにより、望ましい結果も得られます。

于 2013-01-27T07:27:34.457 に答える
-2
avg = 0.5*(x1+x2)

どうやらPythonの1/2は0.5に等しくないため、機能しましたが、1/2は2分の1であり、小数点以下の値も表示されないため、それを望んでいないと想定されます。

于 2013-01-27T07:26:59.520 に答える