TeixeiraSoftware.Finance.Currency 4.1.0

A simple cross platform currency class that follows the ISO 4217 standard.

Install-Package TeixeiraSoftware.Finance.Currency -Version 4.1.0
dotnet add package TeixeiraSoftware.Finance.Currency --version 4.1.0
<PackageReference Include="TeixeiraSoftware.Finance.Currency" Version="4.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TeixeiraSoftware.Finance.Currency --version 4.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

TeixeiraSoftware.Finance.Currency

TeixeiraSoftware.Finance.Currency

Build status
license
Pull Requests
NuGet
BCH compliance

A simple cross platform currency class library for .Net, that follows the ISO 4217 standard.

The implementation of this library is compatible with .Net Standard 2.0 (see https://docs.microsoft.com/en-us/dotnet/standard/net-standard for details).

This package depends on TeixeiraSoftware.Finance.ICurrency.

Usage

You can get a currency instance by three different ways:

  • Calling a factory property, where XXX is the three letters ISO code of the currency:
var currency = Currency.XXX;
  • Using the ByAlphabeticCode method, where, again, XXX is the three letters ISO code of the currency:
var currency = Currency.ByAlphabeticCode("XXX");
  • Using the ByNumericCode method, where 999 is the three numbers ISO code of the currency:
// Note that the numeric code is a string
var currency = Currency.ByNumericCode("999");

Properties

The Currency struct have five read only properties:

public partial struct Currency : ICurrency, IComparable, IComparable<ICurrency>
{
    // The alphabetic ISO code of the currency
    // This property is always the same as AlphabeticCode
    public string Symbol { get; }

    // The name of the currency
    public string Name { get; }

    // The alphabetic ISO code of the currency
    // This property is always the same as Symbol
    public string AlphabeticCode {
        get {
            return Symbol;
        }
    }

    // The ISO numeric code of the currency
    public string NumericCode { get; }

    // The minor units of the currency
    public byte MinorUnits { get; }

    // The sign symbol of the currency
    public string Sign { get; }
}

Comparing currencies

The available comparison operators are == and !=.
The .Equals method is also available.

// returns true
var areCurrenciesEquivalent = (Currency.XXX == Currency.XXX);

// returns false
var areCurrenciesEquivalent = (Currency.XXX != Currency.XXX);

Listing all the currencies

You can use the Currency.AllCurrencies property to get a list of all the currencies:

var allCurrencies = Currency.AllCurrencies;

foreach (var currency in allCurrencies)
{
    var currencyName = currency.Name;
    var currencyISOAlphabeticCode = currency.AlphabeticCode;
    var currencyISONumericCode = currency.NumericCode;
    var currencyMinorUnits = currency.MinorUnits;
    var currencySign = currency.Sign;
}

Contributing

You can see some topics that you can help with in the issues section of the project.
You can also contribute by doing unit tests, writing documentation, making pull requests or sharing the project.

TeixeiraSoftware.Finance.Currency

TeixeiraSoftware.Finance.Currency

Build status
license
Pull Requests
NuGet
BCH compliance

A simple cross platform currency class library for .Net, that follows the ISO 4217 standard.

The implementation of this library is compatible with .Net Standard 2.0 (see https://docs.microsoft.com/en-us/dotnet/standard/net-standard for details).

This package depends on TeixeiraSoftware.Finance.ICurrency.

Usage

You can get a currency instance by three different ways:

  • Calling a factory property, where XXX is the three letters ISO code of the currency:
var currency = Currency.XXX;
  • Using the ByAlphabeticCode method, where, again, XXX is the three letters ISO code of the currency:
var currency = Currency.ByAlphabeticCode("XXX");
  • Using the ByNumericCode method, where 999 is the three numbers ISO code of the currency:
// Note that the numeric code is a string
var currency = Currency.ByNumericCode("999");

Properties

The Currency struct have five read only properties:

public partial struct Currency : ICurrency, IComparable, IComparable<ICurrency>
{
    // The alphabetic ISO code of the currency
    // This property is always the same as AlphabeticCode
    public string Symbol { get; }

    // The name of the currency
    public string Name { get; }

    // The alphabetic ISO code of the currency
    // This property is always the same as Symbol
    public string AlphabeticCode {
        get {
            return Symbol;
        }
    }

    // The ISO numeric code of the currency
    public string NumericCode { get; }

    // The minor units of the currency
    public byte MinorUnits { get; }

    // The sign symbol of the currency
    public string Sign { get; }
}

Comparing currencies

The available comparison operators are == and !=.
The .Equals method is also available.

// returns true
var areCurrenciesEquivalent = (Currency.XXX == Currency.XXX);

// returns false
var areCurrenciesEquivalent = (Currency.XXX != Currency.XXX);

Listing all the currencies

You can use the Currency.AllCurrencies property to get a list of all the currencies:

var allCurrencies = Currency.AllCurrencies;

foreach (var currency in allCurrencies)
{
    var currencyName = currency.Name;
    var currencyISOAlphabeticCode = currency.AlphabeticCode;
    var currencyISONumericCode = currency.NumericCode;
    var currencyMinorUnits = currency.MinorUnits;
    var currencySign = currency.Sign;
}

Contributing

You can see some topics that you can help with in the issues section of the project.
You can also contribute by doing unit tests, writing documentation, making pull requests or sharing the project.

Release Notes

Added currency signs and sorting

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
4.1.0 2,056 4/18/2019
4.0.3 2,690 12/11/2018
4.0.2 1,336 3/28/2018
4.0.1 329 2/23/2018
4.0.0 305 2/23/2018