Vous cherchez un bon Type de données sur l'argent pour .NET qui prend en charge monnaies y taux de change (avec le comportement et les opérations connexes).
- Note : J'ai commencé à chercher le code source vu en impression dans le livre Développement piloté par les tests par exemple par l'auteur Kent Beck - il développe un joli concept monétaire. Impossible de trouver la source complète en ligne. Le livre ne contient pas une liste unique - au lieu de cela, il développe le code source sur la durée du livre.
Bien que le livre n'aille pas plus loin, j'aimerais aussi que la classe d'argent soutienne différents mécanismes d'arrondi car cela varie également entre les institutions financières du monde entier.
Edit 1 : Clarifications
Par "classe d'argent", j'entends un type de données .NET que je peux utiliser pour prendre en charge l'argent et ses opérations, avec prise en charge des devises et calcul des taux de change. Quelque chose comme cela est une abstraction de plus haut niveau et pourrait utiliser en interne un type de données primitif. Il pourrait également s'appuyer sur un ensemble de classes telles que : Money, ExchangeRate, Bank, etc.
Il peut s'agir d'un type de valeur (c'est-à-dire d'une structure) ou d'un type de référence (c'est-à-dire d'une classe), mais dans tous les cas, il doit être complet et prendre en charge les fonctionnalités susmentionnées.
Edit 2 : Objectifs du type de données Money
(Cela montre également pourquoi un type brut décimal, int ou autre type primitif ne suffira pas à tous les besoins en matière d'argent).
Les objectifs d'un type de données Argent seraient :
- Fonctions de sécurité (par exemple, empêcher l'arithmétique sur différents types de devises).
- Enregistrez le type de devise avec la valeur (par exemple AUD, US, DKK).
- Stocker les détails du formatage (c'est-à-dire le regroupement des décimales, les symboles monétaires, etc.)
- Fournisseurs de conversion (par exemple, taux de change) pour aider à compléter la solution.
- Réduire plusieurs devises dans une expression pour obtenir un résultat.
Note : Des valeurs de données variables, comme les taux de change, peuvent être chargées depuis une source externe et utilisées. Cette question ne déduit rien de dynamique qui soit codé en dur dans le concept de l'argent.