JS Money
!NPM versionnpm-imagenpm-url

Install
The package is available through npm and bower.$ npm install js-money
$ bower install js-money
Usage
First we need to import the library. ```javascript var Money = require('js-money'); ```Creating a new instance
There are multiple options of what to pass into the constructor to create a new Money instance:- amount as number, currency as string
- amount as number, currency as object
- object with amount and currency fields (only with
fromInteger
andfromDecimal
methods)
{
"symbol": "$",
"name": "US Dollar",
"symbol_native": "$",
"decimal_digits": 2,
"rounding": 0,
"code": "USD",
"name_plural": "US dollars"
}
```
Basic arithmetics
Arithmetic operations involving multiple objects are only possible on instances with the same currency and will throw an Error otherwise. ```javascript var fiveEur = new Money(500, Money.EUR); // 5 EUR // add fiveEur.add(new Money(250, Money.EUR)); // 7.50 EUR // subtract fiveEur.subtract(new Money(470, Money.EUR)); // 0.30 EUR // multiply fiveEur.multiply(1.2345); // 6.17 EUR fiveEur.multiply(1.2345, Math.ceil); // 6.18 EUR // divide fiveEur.divide(2.3456); // 2.13 EUR fiveEur.divide(2.3456, Math.ceil); // 2.14 EUR ```Allocating funds
Will divide the funds based on the ratio without loosing any pennies. ```javascript var tenEur = new Money(1000, Money.EUR); // divide 10 EUR into 3 parts var shares = tenEur.allocate(1,1,1); // returns an array of Money instances worth 334,333,333 // split 5 EUR 70/30 var fiveEur = new Money(500, Money.EUR); var shares = fiveEur.allocate(70,30); // returns an array of money 350,150 ```Comparison and equality
Two objects are equal when they are of the same amount and currency. Trying to compare 2 objects with different currencies will throw an Error. ```javascript var fiveEur = new Money(500, Money.EUR); var anotherFiveEur = new Money(500, Money.EUR); var sevenEur = new Money(700, Money.EUR); var fiveDollars = new Money(500, Money.USD); fiveEur.equals(fiveDollars); // return false fiveEur.equals(anotherFiveEur); // return true fiveEur.compare(sevenEur); // return -1 sevenEur.compare(fiveEur); // return 1 fiveEur.compare(anotherFiveEur); // return 0 fiveEur.compare(fileDollars); // throw Error fiveEur.greaterThan(sevenEur); // return false fiveEur.greaterThanOrEqual(sevenEur); // return false fiveEur.lessThan(sevenEur); // return true fiveEur.lessThanOrEqual(fiveEur); // return true ```Tests
$ npm install
$ npm test