四舍五入是否可能实现跨平台双重数学确定性?

Is Cross-Platform Double Math Determinism Possible with Rounding?

我知道双重数学可能会有 .000000000000001 的误差幅度,乘法会使误差幅度更大,从而使情况变得更糟。话虽如此,是否可以将每个计算四舍五入到有效数字(可能是小数点后 4 位)以实现跨所有平台的一致性?使用十进制数学会更有效还是十进制数学需要类似的舍入?

我将在我的锁步 RTS 游戏中使用它,该游戏需要用于同步多人游戏的确定性物理引擎。我正在使用 C#。我希望执行的一些计算和一些计算包括 System.Math 库的 Sqrt、Sin 和 Pow。

实际上我一直在以错误的方式思考整个问题。我不应该尝试以更高的准确性(和更多的开销)来最小化错误,而应该只使用一种确定性地存储和操作的类型。我在这里使用了答案:Fixed point math in c#? 这帮助我创建了一个完美高效的定点类型。