Implicit vs explicit string to float conversion

Benchmark created by Rasmus Schultz on


Setup

var INCREMENT = 0.12345;
    
    var strings = [];
    
    for (var i=0; i<10000; i++) {
      var num = i + INCREMENT;
      strings.push(num.toString());
    }

Teardown


    var INCREMENT = 0.12345;
    
    for (var i=0; i<10000; i++) {
      var num = i + INCREMENT;
      if (numbers[i] !== num) {
        throw new Error('test failed: ' + numbers[i] + ' !== ' + num);
      }
    }
  

Test runner

Ready to run.

Testing in
TestOps/sec
explicit parseFloat()
var numbers = [];

for (var i=0; i<strings.length; i++) {
  numbers.push(parseFloat(strings[i]));
}
ready
implicit parse float (1)
var numbers = [];

for (var i=0; i<strings.length; i++) {
  numbers.push(1*strings[i]);
}
ready
implicit parse float (2)
var numbers = [];

for (var i=0; i<strings.length; i++) {
  numbers.push(- -strings[i]);
}
ready
parse float using eval()
var numbers = [];

for (var i=0; i<strings.length; i++) {
  numbers.push(eval(strings[i]));
}
ready
coercion to float
var numbers = [];

for (var i=0; i<strings.length; i++) {
  numbers.push(Number(strings[i]));
}
ready

Revisions

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

  • Revision 1: published by Rasmus Schultz on