【发布时间】:2012-07-29 11:06:27
【问题描述】:
假设我有两个 gmpy2.mpc 对象 x 和 y 精确到 p 位。当我计算 x+y 时,x 和 y 的某些部分可能会取消,所以我的精度会降低。
例如
from gmpy2 import *
x = mpc('-0.55555')
y = mpc('0.5555500000001')
print(x+y)
即使 x 和 y 精确到 ~15,结果也只能精确到 4 位有效数字。
我认为我需要计算出在进行加法和减法运算时发生了多少位取消,然后将其从x 或y 的最小精度中去掉。对于乘法和除法,我想我最多只会损失 1 位精度。
所以问题很笼统:我如何跟踪mpc 对象的精度,尤其是在加减它们时?
【问题讨论】: