我通常知道为什么最好对浮点数进行排序以计算数组中几个值的平均值:您可能会冒着将间隔较远的值加在一起的风险 - 从而扭曲整体值。

但是,如果您决定不按升序而是降序对它们进行排序,为什么准确度会进一步提高?我遇到了一些花车的平均公式,并注意到倾向于按降序对它们进行排序,并想知道为什么会这样?

最佳答案

因为截断错误。

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

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。

当你把一个小数字加到一个大得多的数字上时,最后一位小数会丢失。当数字平衡时,这种影响会减弱。

关于c - 对平均值排序浮点值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24911734/

10-11 21:59