Unicode CLDR 48.2.0 currency data for Singulink.Globalization.Currency: every currency with localized names and symbols for all locales, rounding and cash rounding rules, and consistent behavior across all runtimes. The package version mirrors the CLDR version.
Get Started
| Product | Versions |
|---|---|
| .NET | |
| .NET Standard |
README
Singulink.Globalization.Currency.Cldr
Singulink.Globalization.Currency.Cldr provides currency data from the Unicode Common Locale Data Repository (CLDR) for the Singulink.Globalization.Currency library.
The main library builds its default currency registry from the globalization data that ships with the runtime and operating system. That data is convenient but has limitations: it varies between ICU and NLS and between ICU versions, it only includes currencies that are the primary currency of some region, and it does not contain cash rounding rules. This package embeds a compact copy of the CLDR currency data so that registries behave identically on every runtime and include:
- Every currency known to CLDR, including current legal tender, non-tender codes like
XAUandXDR, and historical currencies. - Localized names and symbols for every CLDR locale.
- Standard rounding rules and cash rounding rules for every currency, so
MonetaryValue.RoundToCash()works for currencies likeCAD(nearest 0.05),DKK(nearest 0.50) andSEK(whole kronor).
Versioning
This package contains only data and does not depend on the main library, so it can always be updated to the latest CLDR release without changing the version of the main library that is used. The package version mirrors the CLDR version that the data was generated from, so 48.0.0 contains CLDR 48 data and 48.1.0 contains CLDR 48.1 data. A fourth version component is only added if the package is republished with the same data. The CLDR version and release date are also available at runtime via CldrCurrencyData.CldrVersion and CldrCurrencyData.CldrReleaseDate.
Usage
Register the CLDR data as the default registry once at application startup, before any currencies or monetary values are used:
CurrencyRegistry.SetDefaultProvider(CldrCurrencyData.Provider);
var price = new MonetaryValue(10.03m, "CAD");
price.RoundToCash(); // CAD 10.05
By default the registry contains currencies that are currently legal tender. Other currency types can be included as well:
CurrencyRegistry.SetDefaultProvider(CldrCurrencyData.Provider, CurrencyTypes.CurrentTender | CurrencyTypes.CurrentNonTender);
The data can also be used directly without changing the default registry:
var cldr = CurrencyData.Load(CldrCurrencyData.Provider);
var registry = cldr.Registry; // Current legal tender, cached
var historical = cldr.CreateRegistry(CurrencyTypes.Historical); // Currencies no longer in use
var gold = cldr.AllCurrencies.First(c => c.CurrencyCode == "XAU");
License
CLDR data is provided by the Unicode Consortium under the Unicode License. The library itself is MIT licensed.
Downloads by Version
Similar & Alternative Packages
Hand-picked matching NuGet libraries based on tags & ecosystem
Depended On By
Find packages that declare this package as a dependency. NuGet does not provide a reverse-dependency endpoint, so candidates are checked on demand.
Adoption Assessment
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.