Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.6.1 Safari/605.1.15
Safari 15
Mac OS X 10.15.7
Desktop
one year ago
Test name Executions per second
myFloat.toFixed(2) 1149624.6 Ops/sec
myFloat.toPrecision(2) 1195929.5 Ops/sec
Math.round(myFloat*100)/100 i.e. 2 places 1014976.9 Ops/sec
Bitwise: signed round to 2 places 1330217.1 Ops/sec
Bitwise: UNsigned round to 2 places 1850317.1 Ops/sec
myFloat.toFixed(0) i.e. round to int 1218926.2 Ops/sec
Math.round(myFloat) 1012458.7 Ops/sec
Bitwise: signed round to nearest int 1904663.0 Ops/sec
Floor (round down only to int) 1013372.7 Ops/sec
Trunc (round towards zero) 1010681.6 Ops/sec
Bitwise: signed round to zero (trunc) 1795265.4 Ops/sec
Script Preparation code:
Tests:
  • myFloat.toFixed(2)

  • myFloat.toPrecision(2)

  • Math.round(myFloat*100.0)/100.0

  • Bitwise: signed round ± to 2 places

  • Bitwise: UNsigned round ± to 2 places

  • myFloat.toFixed(0)

  • Math.round()

  • Bitwise: signed round ± to int

  • Bitwise: UNsigned round ± to int

  • Math.floor() round down

  • Math.trunc() round toward zero

  • Bitwise: round toward zero