在3.12的What's New document中,有一点:

在对浮点数或混合整数和浮点数求和时,sum()现在使用Neumaier求和来提高精确度和交换性.(由Raymond Hettinger在GH-100425中贡献.)

而且还有一个math.fsum函数,用于精确的浮点数求和.我想它应该使用一些类似的算法.

我在3.11和3.12审理了不同的案件.在3.11,sum()给出的结果没有预期的那么精确.但在3.12,他们总是返回相同的好结果,当结果不同时,我找不到一个 case .

我应该用哪一个呢?当一个人应该 Select math.fsum()而不是内置sum()的时候,还有剩余的 case 吗?

推荐答案

以下是你问题中的GitHub问题:https://github.com/python/cpython/issues/100425

根据那里的详细讨论,sumfsum快了大约10倍.这种新的优化应该与求和并行运行,使其基本上是免费的.

现在,sum比以前更准确.fsum在某些情况下仍然应该更准确,而且速度更慢.这似乎是它的意义所在.

如果sum个结果的准确性对你来说是可以接受的,或者你需要它的速度,那么你可以使用它.

Python相关问答推荐

只需使用Python在图像中保留 colored颜色 范围区域

如何修复fpdf中的线路出血

已安装' owiener ' Python模块,但在导入过程中始终没有名为owiener的模块

Flask主机持续 bootstrap 本地IP| Python

pyramid 内部数组中的连续序列-两极

查找下一个值=实际值加上使用极点的50%

DuckDB将蜂巢分区插入拼花文件

如何调整spaCy token 化器,以便在德国模型中将数字拆分为行末端的点

如何才能知道Python中2列表中的巧合.顺序很重要,但当1个失败时,其余的不应该失败或是0巧合

如何使用matplotlib在Python中使用规范化数据和原始t测试值创建组合热图?

如何使用html从excel中提取条件格式规则列表?

如何访问所有文件,例如环境变量

2D空间中的反旋算法

Python库:可选地支持numpy类型,而不依赖于numpy

Python键入协议默认值

如何在Raspberry Pi上检测USB并使用Python访问它?

如果条件不满足,我如何获得掩码的第一个索引并获得None?

如何将多进程池声明为变量并将其导入到另一个Python文件

如何从pandas的rame类继承并使用filepath实例化

使用NeuralProphet绘制置信区间时出错