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
)結果保證在機器和運行時間保持一致?爲什麼或爲什麼不?