ETHproductions / infimath

Arbitrary-precision math library for JavaScript. Just a test for now.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

infimath.js Build Status Coverage Status

WIP arbitrary-precision math library for JavaScript.

How do I use it?

Browser:

<script src='https://rawgit.com/ETHproductions/infimath/master/src/infimath.js'></script>

Usage:

var myNumber1 = new BigNumber(0.1);   // Creates a new BigNumber
var myNumber2 = BigNumber(0.2);       // Also creates a new BigNumber
var myNumber3 = BigNumber.parse(0.3); // This too

myNumber1.plus(myNumber2);            // Pushes an addition operation to the queue
console.log(myNumber1);               // 0.1 (value hasn't changed yet)

myNumber1.calculate();                // Empties the queue and performs each calculation
console.log(myNumber1);               // 0.3
console.log(myNumber1.eq(myNumber3)); // true

// All of these are valid
var numbers = [
    BigNumber(1),
    BigNumber(-1),
    BigNumber(0.1),
    BigNumber(1e-5),
    BigNumber("1"),
    BigNumber("-1.1"),
    BigNumber("2.4e5"),
    BigNumber("89,374,920.723_254_1"),
    BigNumber("89 374 920.723 254 1"),
    BigNumber([1,234,567]),
    BigNumber(BigNumber(1))
];

console.log(
    BigNumber(1e+30)
    .plus(1e-30)
    .minus(1e-31)
    .times(2)
    .negate()
    .calculate()
    .toString()
    ); // "-2000000000000000000000000000000.0000000000000000000000000000018"

Move stuff here soon.

About

Arbitrary-precision math library for JavaScript. Just a test for now.

License:MIT License


Languages

Language:JavaScript 100.0%