4
我需要在JavaScript中进行整数除法,这只能给我使用双精度浮点数。通常我只是做Math.floor(a/b)
(或a/b | 0
)并完成它,但在这种情况下,我正在以锁步方式执行模拟,并且需要确保跨机器和运行时的一致性,无论它们是使用64位还是80位内部精确。与浮点运算一致的整数除法
到目前为止我还没有注意到任何不一致,但我还没有能够确定地说服自己,他们不会发生。所以我在想:
假设
a
和b
分别为0..2^31-1和1..2^31-1是整数,其是从JavaScriptMath.floor(a/b)
(和a/b | 0
)结果保证在机器和运行时间保持一致?为什么或为什么不?