浮点累加:精度和顺序
累加浮点数时,它们相加的顺序可能有很大影响对结果精度的影响。
改进的升序精确
你的直觉是正确的。按升序添加数字通常可以提高精度。考虑单精度浮点数的场景:
如果先加1,由于精度损失,和变成1。添加其他值没有影响。
如果先添加小值,它们会有所积累,但在某个点之后,它们也会失去精度。
负值和不准确
但是,如果涉及负数,升序可能会不够。考虑以下值:十亿分之一、-1、1。
只有两个订单产生正确的结果(十亿分之一):十亿分之一、-1、1 或十亿分之一-1、1、1。其余订单的结果不准确。
高级累积技巧
极端情况下,需要更高级的技巧:
与现实世界编程的相关性
虽然这个问题可能看起来不直接相关对于实际编程来说,它可能会在特定场景中出现:
以上是浮点加法的顺序对于精确累加有影响吗?的详细内容。更多信息请关注PHP中文网其他相关文章!