具有浮点的重要性损失的加法和减法

时间:2010-09-19 01:42:07

标签: floating-point precision floating-accuracy numerical-analysis

虽然学习浮点运算的精度和避免它的不同方法(使用共轭,泰勒系列......)书籍经常提到减去两个非常相似的数字或一个大数字和一个小数字作为最大的原因错误。为什么只有减法导致这个而不是添加?正如我所看到的那样,在换档时你仍会失去同样多的重要位。

2 个答案:

答案 0 :(得分:1)

当减去两个几乎相等的数字时,差异将比原始数字具有更少的有效位。小数示例是:

 1.23456789    9 significant digits
-1.23456785    9 significant digits
───────────
          4    1 significant digit

答案 1 :(得分:1)

加法或减法之间没有区别,减法是与否定操作数相加的。你是正确的,为了增加或减少你必须将具有较小指数的数字移到比特桶中以便执行操作,从而导致该操作数的较少有效位。如果指数与尾数的大小不同,则加法或减法得到具有较大指数的数字作为结果,较小数字的所有位都移位到比特桶N + 0 = N-0。