PDA

View Full Version : [C#]non riesco a fare la somma fra decimali


RaouL_BennetH
29-11-2006, 12:43
ciao a tutti.

Posto prima il codice e poi cerco di spiegare bene il problema:



private void CalcoloTotaleCarburante(DataGridViewCellEventArgs e)
{

decimal totaleLitri, totaleCostoRifornimento, totaleCarburante = 0;
bool b1, b2;

b1 = Decimal.TryParse(myGrid.Rows[e.RowIndex].Cells[1].Value.ToString(), out totaleLitri);

b2 = Decimal.TryParse(myGrid.Rows[e.RowIndex].Cells[2].Value.ToString(), out totaleCostoRifornimento);

decimal costoPerLitro = totaleCostoRifornimento / totaleLitri;

myGrid.Rows[e.RowIndex].Cells[3].Value = costoPerLitro.ToString("N2");


//Qui inizia il mio problema
totaleCarburante += totaleCostoRifornimento; //cerco di ottenere la somma dei vari rifornimenti

casellaDiTesto.Text = totaleCarburante.ToString("N2");

}

ora mi succede questo:

1) totaleCostoRifornimento = 49.35
2) totaleCostoRifornimento = 51.89

la mia brava casella di testo anzichè darmi come somma: 101.24

mi da: 103.78

ho provato con diversi valori (sia decimali che interi), ma è come se mi arrotondasse sempre di + o - 2.5.

Mi aiutate per favore?

Grazie.

Raoul.

RaouL_BennetH
29-11-2006, 13:33
credo di aver capito il problema, il fatto è che mi fa la somma solo dell'ultimo valore della riga anzichè sommarmi i valori presenti nella colonna:

diciamo per ipotesi che ho questi valori nelle righe:


riga1 : 45.50
riga2 : 57.63
riga3 : 61.23


come valore mi da ovviamente: 61.23 + 61.23 + 61.23 = 183.69

invece io devo ottenere la somma delle righe di quella colonna :(

RaouL_BennetH
29-11-2006, 16:00
problema risolto inserendo tutto all'interno di un ciclo "for" in questo modo:



for(int r = 0; r < myGrid.Rows.Count -1; r++)
{
valoreBooleano = Decimal.TryParse(myGrid.Rows[r].Cells[1].Value.ToString(), out variabile);

// etcetera.....
}



Raoul.