在学习浮点算术精度和避免它的不同方法(使用共轭、泰勒级数等)时,书籍经常提到两个非常相似的数字或一个大数和一个小数的减法是导致错误的最大原因。为什么只有减法会导致这种情况而不是加法?正如我所看到的,您在移位时仍然会丢失同样多的有效位。
问问题
2419 次
2 回答
1
当减去两个几乎相等的数字时,差异的有效位将少于原始数字。十进制示例是:
1.23456789 9 significant digits
-1.23456785 9 significant digits
───────────
0.00000004 1 significant digit
于 2010-09-19T01:53:31.733 回答
1
加法或减法没有区别,减法是与取反的操作数相加。你是对的,为了加或减,你必须将具有较小指数的数字移到位桶中,以便执行操作,从而导致该操作数的有效位减少。如果指数与尾数的大小差异更大,则加法或减法会得到具有较大指数的数字,结果是,较小数字的所有位都已移入位桶 N + 0 = N - 0。
于 2010-09-20T05:50:07.523 回答