发布于2020-01-16 12:25 阅读(1268) 评论(0) 点赞(14) 收藏(1)
当我通过float
以下方式计算s 列表的均值时
def mean(x):
sum(x) / len(x)
那么我通常不关心浮点运算中的微小错误。虽然,我目前面临的一个问题,我想在所有的元素list
是等于或高于列表的平均水平。
同样,这通常没有问题,但是当我遇到列表中所有元素都等于浮点数而不是上面函数计算的平均值的情况时,实际上会返回一个高于所有元素的值。就我而言,这显然是一个问题。
我需要一种解决方法,以解决不依赖于python3.x库(例如统计信息)的问题。
编辑: 建议在注释中使用四舍五入。有趣的是,错误很少见,但仍然会发生,例如在这种情况下:
[0.024484987, 0.024484987, 0.024484987, 0.024484987, ...] # x
0.024485 # mean
[] # numbers above mean
我相信您应该使用math.fsum()
而不是sum
。例如:
>>> a = [0.024484987, 0.024484987, 0.024484987, 0.024484987] * 1360001
>>> math.fsum(a) / len(a)
0.024484987
我相信这是您正在寻找的答案。a
与相同的,无论的长度如何,它都会产生更一致的结果sum()
。
>>> sum(a) / len(a)
0.024484987003073517
作者:黑洞官方问答小能手
链接:https://www.pythonheidong.com/blog/article/224512/6fbd9d579b70c573553a/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!