记一例浮点数精度问题

记一例浮点数精度问题

💡 原文中文,约700字,阅读约需2分钟。
📝

内容提要

在内存中,两个浮点数 a 和 b 不断递增。通过给 a 加非负浮点数或同时给 a 和 b 加非负整数来增加它们。后台线程报告增量 deltaA 和 deltaB,但由于浮点数精度问题,可能出现 deltaA < deltaB 的情况,尽管 a 的增量应大于或等于 b 的增量。

🎯

关键要点

  • 内存中有两个不断递增的浮点数 a 和 b。
  • 有两种操作可以递增 a 和 b:给 a 加非负浮点数,或同时给 a 和 b 加非负整数。
  • 后台线程向服务器报告 a 和 b 的增量 deltaA 和 deltaB。
  • deltaA 和 deltaB 的计算公式为:deltaA = a - lastA,deltaB = b - lastB。
  • 可能出现 deltaA < deltaB 的情况,尽管 a 的增量应大于或等于 b 的增量。
  • 浮点数的精度问题可能导致 deltaA 小于 deltaB。
  • 误差方向不同可能导致 deltaA 和 deltaB 的计算结果不一致。
  • 示例中,lastA 和 lastB 的精度误差导致 deltaA 偏小。
➡️

继续阅读