Monniaux 的优秀文章“验证浮点运算的陷阱”给出了意外数值行为的示例。然而,大多数示例依赖于扩展精度 FPU 或扩展精度运算(例如乘法累加)。除了带符号的零和涉及 NaN 的比较之外,当扩展精度硬件被禁用时,还有任何令人惊讶的数值行为的好例子吗?
问问题
200 次
1 回答
4
程序员经常感到惊讶的一个例子是当x + 1 == x
. 在单精度浮点中,由于尾数的精度有限,这对于x
小至都是正确的。2^25
当模拟中的时间值增加一个小时间步长时,通常会出现这种情况。类似的问题影响了爱国者导弹。
于 2011-07-28T03:38:34.243 回答