Math.floor vs Math.round vs parseInt vs Bitwise (v45)

Revision 45 of this benchmark created by Jon-Carlos Rivera on


Description

Rounding in all form possible

Setup

var a = Math.random() * 1000;
    var b = Math.random() * 1000000;
    var c =  Math.random() * 1000000000;

Test runner

Ready to run.

Testing in
TestOps/sec
Math.floor
var x = Math.floor(a);
var y = Math.floor(x * b);
var z = Math.floor(y / c);
var w = Math.floor(z / a);
ready
Math.round
var x = Math.round(a);
var y = Math.round(x * b);
var z = Math.round(y / c);
var w = Math.round(z / a);
ready
parseInt
var x = parseInt(a);
var y = parseInt(x * b);
var z = parseInt(y / c);
var w = parseInt(z / a);
ready
Bitwise |
var x = a | 0;
var y = (x * b) | 0;
var z = (y / c) | 0;
var w = (z / a) | 0;
ready
Bitwise
var x = a >> 0;
var y = (x * b) >> 0;
var z = (y / c) >> 0;
var w = (z / a) >> 0;
ready
Bit flipping
var x = ~~a;
var y = ~~(x * b);
var z = ~~(y / c);
var w = ~~(z / a);
ready
zero-fill right shift
var x = a >>> 0;
var y = (x * b) >>> 0;
var z = (y / c) >>> 0;
var w = (z / a) >>> 0;
ready
Alternate Bitwise |
var x = a | 0;
var y = x * b | 0;
var z = y / c | 0;
var w = z / a | 0;
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.