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

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

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

最佳答案 由于截断错误.

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

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.

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

点赞