我从一个数据集中加载了 2 个值。
x1=5.904e-16
和
x1=1.048576e-14
虽然这些数字很小,但我想做的只是对它们进行平均。
avg = 1/2*(x1+x2)
但这给出了 avg = 0
好了!
最佳答案
我假设您使用的是 Python 2。
当两个参数都是整数时,Python 2 使用整数除法,这意味着结果也将是整数。例如:
print 1/2
# 0
print 5/2
# 2
要解决此问题,请使用等效 float (0.5
),或更改除法的参数之一(1
或 2
>,没关系)到一个 float ,这样它也会返回一个 float 。
print 1.0/2
# 0.5
print 1/2.0
# 0.5
print 1.0/2.0
# 0.5
您也可以,如 nneonneo mentioned ,将和直接放入除法中,如下所示:
(x1+x2)/2.0
这也将给出所需的结果。
关于Python 数学重要性级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14545354/