我需要在JavaScript中进行整数除法,但它只提供双精度浮点数。通常我会使用
到目前为止,我还没有注意到任何不一致之处,但我无法得出结论它们不会发生。因此,我想知道:
1. 假设
2. 为什么或为什么不?
Math.floor(a / b)
(或a / b | 0
),但在这种情况下,我正在执行锁步模拟,并且需要确保跨机器和运行时的一致性,而不管它们是否使用64位或80位内部精度。到目前为止,我还没有注意到任何不一致之处,但我无法得出结论它们不会发生。因此,我想知道:
1. 假设
a
和b
是范围为0..2^31-1和1..2^31-1的整数,那么JavaScript Math.floor(a / b)
(和a / b | 0
)的结果是否保证在机器和运行时上是一致的?2. 为什么或为什么不?