moneiro v0.9.1
moneiro
moneiro is a JavaScript library that provides a type and a set of functions to support financial calculations.
Money, a type that the library provides, represents a fixed-point decimal number. This type is designed to be used in financial calculations, where rounding errors are not acceptable.
The moneiro's default exported function creates a new instance of Money from a number of minor units (e.g. cents) or another Money instance.
It also provides functions to create a Money instance from a variety of sources:
- from a string formatted as
-1,234.56, usemoney.parse(value)ormoney.fromString(value). - from a number of cents (or pense), use
money.fromMinor(value). - from a floating-point number, rounding to a lowest cent, use
money.fromNumber(value). - from a number of major units (dollars), use
money.fromMajor(value).
It can holds values from -90071992547409.91 to 90071992547409.91.
A Money instance provides these operations:
value- returns an integer representation of thisMoneyinstance.add(money1, money2, ...)- returns a new instance ofMoneywith added amounts.distribute(recipients, unit)- divides the amount amongrecipients, proportionally to their shares. Operate inunit(default isminor).major()- returns a number of major units (dollars) as an integer JavaScript number, e.g.1for1.23.minor()- returns a number of minor units (dollars) as an integer JavaScript number, e.g.23for1.23.substract(money1, money2, ...)- returns a new instance ofMoneywith substracted amounts.toNumber()- returns a floating-point number representation of theMoneyinstance.toString()- returns string representation of theMoneyinstance, e.g.-1,234.56.
moneiro also provides these constants:
minor- indicates that computations are done in minor units (cents).major- indicates that computations are done in major units (dollars).zero- zero value.
In addition, moneiro provides these utility functions:
isMoney(value)- returnstrueifvalueis an instance ofMoney.
Usage
Include moneiro:
var money = require('moneiro');Create a Money instance, distribute it among shareholders, and sum up the result:
const amount = money.parse('1,204.20');
const dividends = amount.distribute([.6, .2, .2]);
const total =
dividends.reduce(
(sum, item) => sum.add(item),
money.zero);2 years ago