我试图了解浮点运算的相关性。 在我的讲义中,陈述如下:
"假设浮点值存储七位精度。 考虑到将11个数字加在一起的问题,其中一个数字是10 ^ 7而另外十个是1。
如果小数(1)每次都加到一个大数字,一次一个,对这个数字没有影响,因为小数字出现在大数字的第八位数#34;。所以在这里我理解结果是1,000,001。
"但是,如果首先将小数字加在一起并将结果添加到大数字,则结果是七位数的准确度1.000001 * 10 ^ 7"
但这两种方法对我来说都是一样的:我们将10个数字添加到更大的数字中。 有人可以澄清这个问题吗? 谢谢
答案 0 :(得分:3)
我们先来看看第一种方法。当小数字逐个添加到大数字时,以下将发生十次:
10,000,000 + 1 = 10,000,001
然而,由于浮点值仅存储七位数的精度,因此该八位数将在第七位数字舍入为零。此操作将发生10次,因此该值将保持为10,000,000。
接下来让我们来看看第二种方法。首先将10个数字1加在一起,因此这将总计为10.当这被添加到10 ^ 7时,将发生以下情况:
10,000,000 + 10 = 10,000,010
由于浮点值存储七位精度,因此该数字将保留!