NodaMoney
NodaMoney copied to clipboard
NodaMoney provides a library that treats Money as a first class citizen and handles all the ugly bits like currencies and formatting.
For example: var ci = new CultureInfo("nl-NL"); var currency = ci.GetCurrency(); This issue should also take into consideration the fact that a certain Culture might have 2 currencies. One might...
See http://www.w3schools.com/charsets/ref_utf_currency.asp. Is this useful, because there aren't many of them?
Apart from the English name of a Currency, we also want to have a native name of the Currency. RegionInfo class in .NET has these names available. See `RegionInfo.CurrencyNativeName`. Check...
Some countries are allowed to not use all the available coins within a currency when dealing with cash. For example in some European countries, like the Netherlands. See http://www.dnb.nl/en/payments/euro-banknotes-and-coins/rounding-to-multiples-of-5-cents/ and...
We could add the possible coins and banknotes to Currency. For example for Euro (EUR) we have the following: - Coins: - Freq Used: €1, €2, 5cent, 10cent, 20cent, 50cent...
Add the English name, the native name and if available the sign of the minor unit. For examle: United Arab Emirates dirham (AED) has as minor unit (1/100) the English...
```Money``` abd ```Currency``` should be a readonly structs. You might think that this is impossible because it implements IXmlSerializable but that is not the case. You can use this [workaround](https://reflectionit.nl/blog/2022/implement-ixmlserializable-in-a-readonly-struct)...
When using Money in constructor a typical dangerous thing is the conversion of decimal to Money as implicit, especially in a microservices world, you never know what currency is going...
- ToString/Parse round-trip failed because of '.' in "fr." (and possibly other currencies with a '.' in their symbol) - replaced unused/outdated symbol "fr." by "CHF" - added NodaMoney.CurrencySymbolParser, provided...
some similar mechanism to throw at runtime to disallow implicit conversions, can cause bugs with currencies in different deployments