对平均值的浮点值进行排序

时间:2014-07-23 13:25:20

标签: c bits

我一般都知道为什么要对一个浮点数进行排序以计算数组中几个值的平均值是明智的:你会冒险将间隙相距较远的值加在一起 ​​- 从而扭曲整体价值。

但是,如果您决定不按升序排序,而是按降序排序,为什么精度会进一步提高?我已经发现了一些浮动的平均配方,并且已经注意到它们倾向于按降序排序并且想知道为什么会这样?

1 个答案:

答案 0 :(得分:2)

由于截断错误。

假设您的浮点算术只存储四位有效数字。

7.000 + 0.0003 + 0.0003 + 0.0003 + 0.0003得到7.000,7.000,7.000,7.000。

,而

0.0003 + 0.0003 + 0.0003 + 0.0003 + 7.000产量0.0006,0.0009,0.0012,7.001。

当你向一个更大的数字添加一个小数字时,最后一个小数会丢失。当数字平衡时,这种影响会减弱。