在Python中添加两个给定的浮点数?

时间:2012-09-17 05:24:11

标签: python floating-point

如何使用Python创建一个方法来添加列表中的浮点数,而不使用库?老师给了我们这个代码,我不明白,还有其他人可以给我另一个例子吗?

def msum(iterable):
    "Full precision summation using multiple floats for intermediate values"
    partials = []               # sorted, non-overlapping partial sums
    for x in iterable:
        i = 0
        for y in partials:
            if abs(x) < abs(y):
                x, y = y, x
            hi = x + y
            lo = y - (hi - x)
            if lo:
                partials[i] = lo
                i += 1
            x = hi
        partials[i:] = [x]
    return sum(partials, 0.0)

1 个答案:

答案 0 :(得分:1)

python中的Kahan算法版本如下所示:

def msum(input):
    sum = 0.0
    c = 0.0
    for x in input:
        y = x - c
        t = sum + y
        c = (t - sum) - y
        sum = t

    return sum

“不使用其他图书馆”甚至意味着什么?当然你可以拥有

def msum(input):
    return sum(input)