内置sum和pd.Series.sum函数的结果之间存在差异



这是我正在使用的系列,

https://paste.ubuntu.com/p/Wd3czXj9Fc/

>>> sum(series)
185048.7799999991
>>> series.sum()
185048.78000000003

为什么这些价值观之间存在差异?虽然这两个值都有浮点误差,但这不应该是造成这种差异的原因。

为什么这些值之间存在差异?虽然这两个值都有浮点误差,但这不应该是造成这种差异的原因。

正如您的问题中所暗示的,这是由于精度上的浮点。您的十进制数是近似的,因此在sum()中使用Python构建与使用pandas.Series.sum()(实际上调用numpy.sum().

内置的sum()不用于精确的浮点运算"要添加具有扩展精度的浮点值,请参见math.fsum()"文档

最新更新