votemike/money

A class for dealing with Money (a combination of a value and a currency)

1.2.0 2017-11-30 19:49 UTC

This package is not auto-updated.

Last update: 2024-11-18 08:06:41 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License composer.lock StyleCI

Pass in an amount and currency to the Money object to create an immutable object. Perform actions with the object. Deals with different units/rounding of different currencies. Formats money for display Please use GitHub to raise any issues and suggest any improvements.

Install

Via Composer

$ composer require votemike/money

Usage

$money = new Money(99.999999, 'GBP');
$add = $money->add(new Money(20, 'GBP'));
$sub = $money->sub(new Money(20, 'GBP'));
$multiply = $money->multiply(3);
$divide = $money->divide(3);
$abs = $money->abs();
$inv = $money->inv();
$percentage = $money->percentage(20);
$round = $money->round();
list($first, $second, $third) = $money->split(20, 33.33);

$money = new Money(99.50, 'JPY');
$money->format(); //¥100
$money->formatWithSign(); //+¥100
$money->getAmount(); //99.50
$money->getCurrency(); //JPY
$money->getRoundedAmount(); //100

$money = new Money(9500, 'USD');
$money->formatShorthand(); //$10k

$money = new Money(-9.500, 'USD');
$money->formatForAccounting(); //(9.50)

Credits

License

The MIT License (MIT). Please see License File for more information.