bignumber.js vs. big.js vs. decimal.js

JavaScript performance comparison

Revision 17 of this test case created by roviury

Preparation code

<script src="http://rawgit.com/dtrebbien/BigDecimal.js/master/build/BigDecimal-all-last.min.js"></script>
<script src="https://rawgithub.com/MikeMcl/bignumber.js/master/bignumber.min.js"></script>
<script src="https://rawgithub.com/MikeMcl/big.js/master/big.min.js"></script>
<script src="https://rawgithub.com/MikeMcl/decimal.js/master/decimal.min.js"></script>
      
<script>
Benchmark.prototype.setup = function() {
  var integerPart = (+new Date) % 100000000;
  var decmialA = 0.1234562;
  var decmialB = 0.1234564;
  var valA = integerPart + decmialA;
  var valB = Math.log(integerPart) + decmialB;
  window.valA = valA;
  window.valB = valB;

};
</script>

Preparation code output

<script src="https://rawgithub.com/MikeMcl/bignumber.js/master/bignumber.min.js"></script> <script src="https://rawgithub.com/MikeMcl/big.js/master/big.min.js"></script> <script src="https://rawgithub.com/MikeMcl/decimal.js/master/decimal.min.js"></script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
BigNumber
var a = new BigNumber((window.valA += 1.23).toString())
var b = new BigNumber((window.valB += 3.21).toString())
a.plus(b).div(b).toString()
pending…
Big
var a = new Big((window.valA += 1.23).toString())
var b = new Big((window.valB += 3.21).toString())
a.plus(b).div(b).toString()
pending…
Decimal
var a = new Decimal((window.valA += 1.23).toString())
var b = new Decimal((window.valB += 3.21).toString())
a.plus(b).div(b).toString()
pending…
BigDecimal
var a = new BigDecimal((window.valA += 1.23).toString())
var b = new BigDecimal((window.valB += 3.21).toString())
a.add(b).div(b).toString()
pending…

Compare results of other browsers

Revisions

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

0 Comments