J'ai un problème avec une requête que j'ai écrite où, pour une raison quelconque, la variable que j'utilise pour stocker une valeur décimale retourne 6 valeurs après la décimale (elles sont pour la plupart 0).LINQ to SQL Math.Round Problème
J'ai essayé ce qui suit (et différentes combinaisons en utilisant Math.Round) sans aucune chance.
Sales =
(from invhed in INVHEAD
... // Joins here
orderby cust.State ascending
select new Sale
{
InvoiceLine = inv.InvoiceLine,
InvoiceNum = inv.InvoiceNum,
...
NetPrice = Math.Round((inv.ExtPrice - inv.Discount) * (Decimal) (qsales.RepSplit/100.0), 2, MidpointRounding.ToEven),
}).ToList<Sale>();
Le membre NetPrice a des valeurs comme 300,000000, 5000,500000, 3245,250000, etc.
Des indices? Je n'arrive pas à trouver quoi que ce soit sur cette question en ligne.
EDIT:
Decimal.Round a fait le tour (j'ai oublié de mentionner que le membre NetPrice était un type décimal). Voir ma réponse ci-dessous.
Ce qui est étrange, c'est que c'est l'opération de division qui gâche les choses. Si je fais juste: inv.ExtPrice - inv.Discount, je récupère une valeur décimale avec seulement 2 décimales dans ma sortie XML. – Overhed