2009-09-14 11 views
1

Je travaille actuellement sur le développement d'un programme qui stocke la quantité sous forme décimale avec des positions à quatre chiffres pour la très petite minorité de produits vendus en partie (par exemple 100ml liquide vendu en quantités variables comme 1mg-3.5 mg). Je n'aime pas cette conception car elle pose des problèmes à l'ensemble du programme en décidant comment présenter la quantité et maintenant certains problèmes où il y a des produits qui ont incorrectement des valeurs décimales.
Pouvez-vous imaginer une meilleure façon de faire cela?
Je cherche une alternative à un champ de quatre décimales dans la base de données. Le projet utilise SQL Server 2005.Traitement des quantités d'articles décimaux

Édition. J'ai fait cette question plus générique afin d'obtenir une audience potentielle plus

Répondre

1

Dans .NET, un System.Decimal va être votre meilleure option que System.Single et System.Double ne sont pas bons à représenter les nombres à virgule flottante avec une précision de représentation précise. Pouvez-vous fournir un petit exemple complet qui démontre votre problème?

+1

System.Decimal est votre meilleur pari côté C#. Decimal est votre meilleur pari sur SQL Server. Utilisez une précision de 19 et une échelle de 4. En ce qui concerne le formatage, il existe plusieurs façons de gérer la gestion de l'affichage. Vous pourriez vouloir lire sur IFormatProvider à considérer pour afficher facilement vos numéros. Pensez également à utiliser une méthode d'extension qui prend une valeur de type décimal et une unité (par exemple, ea, mg, etc.), puis ajuste le format de façon appropriée. La méthode d'extension serait sur System.Decimal. Il peut être utilisé comme System.Decimal.FormatMyData (entrée Decimal, chaîne de caractères) –

2

Stockez la quantité la plus petite vendue. Donc, si quelque chose est vendu par le mg, stockez-le comme ça. De cette façon, vous n'avez pas besoin de stocker des fractions et d'arrondir. Créez simplement une table pour le produit afin de pouvoir stocker la valeur de la façon dont il est stocké et affiché, ainsi que toute autre méta-donnée sur la taille.