Run details:
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0
Firefox 80
Windows 7
Desktop
4 years ago
Test name Executions per second
toFixed(4) 4563685.0 Ops/sec
toPrecision(4).toString() 4338023.0 Ops/sec
(Math.round(*10000)/10000).toString() 69619424.0 Ops/sec
Math.floor fast 222547952.0 Ops/sec
precisition round 40743512.0 Ops/sec
Script Preparation code:
AخA
 
var someFloat = 0.123456789;
 var round_to_precision = function (x, precision) {
    var y = +x + (precision === undefined ? 0.5 : precision/2);
    return y - (y % (precision === undefined ? 1 : +precision));
};
Tests:
  • toFixed(4)

     
    someFloat.toFixed(4);
  • toPrecision(4).toString()

     
    someFloat.toPrecision(4);
  • (Math.round(*10000)/10000).toString()

    x
     
    (Math.round(someFloat*10000)/10000);
  • Math.floor fast

     
    ~~(someFloat * 10000) / 10000;
  • precisition round

     
    round_to_precision(someFloat, 4);