Test name | Executions per second |
---|---|
Native | 1370193920.0 Ops/sec |
Native + toFixed | 13581755.0 Ops/sec |
decimal.js | 615282.1 Ops/sec |
big.js | 326783.9 Ops/sec |
bignumber.js | 338425.5 Ops/sec |
bn.js | 1029262.7 Ops/sec |
bn.js in-place | 1087712.1 Ops/sec |
<!--script src="https://raw.githubusercontent.com/iriscouch/bigdecimal.js/v0.6.1/lib/bigdecimal.js"></script-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bignumber.js/9.0.1/bignumber.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/big.js/6.0.3/big.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/decimal.js/10.2.1/decimal.min.js"></script>
<script src="https://unpkg.com/bn.js@5.2.1/lib/bn.js"></script>
<!--script src="https://raw.githubusercontent.com/infusion/Fraction.js/v4.0.12/fraction.min.js"></script-->
var a = 57005;
var b = 42;
var c = 1.55;
((((a + b) * b) / 5) * c).toString(); // "742751.9400000001"
var a = 57005;
var b = 42;
var c = 1.55;
((((a + b) * b) / 5) * c).toFixed(9); // "742751.940000000"
var a = new Decimal("57005");
var b = new Decimal("42");
var c = 1.55;
a.plus(b).times(b).dividedBy(5).times(c).toString(); // "742751.94"
var a = new Big("57005");
var b = new Big("42");
var c = 1.55;
a.plus(b).mul(b).div(5).mul(c).toString(); // "742751.94"
var a = new BigNumber("57005");
var b = new BigNumber("42");
var c = 1.55;
a.plus(b).multipliedBy(b).dividedBy(5).multipliedBy(c).toString(); // "742751.94"
var a = new BN("57005");
var b = new BN("42");
var c = 1.55;
a.add(b).mul(b).divn(5).muln(c).toString(); // "742750" the divn(5) affects the precision
var a = new BN("57005");
var b = new BN("42");
var c = 1.55;
a.iadd(b).imul(b).idivn(5).imuln(c).toString(); // "742750" the idivn(5) affects the precision