A Money class with multi-currency arithmetic for .Net (C#)
var m1 = new Money(0m, CurrencyCode.NZD);
// When CurrencyCode is not specified.
// CurrencyCode will default to GlobalSetting.DefaultCurrencyCode.
var m2 = new Money(0m);
// When the amount and CurrencyCode are not specified.
// The amount will default to zero, and CurrencyCode will default to GlobalSetting.DefaultCurrencyCode.
var m3 = new Money();
// Money.Empty is the same as new Money()
var m4 = Money.Empty;
var m5 = Money.Parse("1.06 NZD");
Default CurrencyCode is GlobalSetting.DefaultCurrencyCode and can be changed
GlobalSetting.DefaultCurrencyCode = CurrencyCode.AUD
CurrencyCode class can be to be inherited and ad new currency codes if needed
Money can be multiplied by ExchangeRate and changed to different Currency
var m1 = new Money(1m, CurrencyCode.USD);
var rate = new ExchangeRate(CurrencyCode.USD, CurrencyCode.NZD, 1.6m, DateTime.Today);
var result = m1 * rate;
Assert.Equal(new Money(1.6m, CurrencyCode.NZD), result);
- Money can only be added or Subtract using the same currency Money
- Money can only be multiplied using decimal or ExchangeRate
- Money can only be divided and checked remainder using decimal
- Thank you for the Icons by Paomedia