128 messaggi dal 01 novembre 2012
Gent.mi,

ho inserito alle 20 TextBox gli importi interi, migliaia e decimali ed all'ultima TextBox dovrebbe apparire il totale.

Riscontro un problema che l'ultima TextBox non viene presa in considerazione mentre fino alla penultima la somma è perfetta.
Riporto il codice:
TextBox1.Text = "23.112,00"; TextBox2Text = "1.300,00"; TextBox3.Text = "856,35"; TextBox4.Text = "250,00"; 

TextBoxTotale.Text = (float.Parse(TextBox1.Text) + float.Parse(TextBox2.Text) + float.Parse(TextBox3.Text) + float.Parse(TextBox4.Text).ToString()); 

decimal num = Decimal.Parse(TextBoxTotale.Text);
            TextBoxTotale.Text = num.ToString("#,##0.00", CultureInfo.CurrentCulture.NumberFormat);

            if (TextBoxTotale.Text.EndsWith("."))
            {
                TextBoxTotale.Text = TextBoxTotale.Text.Substring(0, TextBoxTotale.Text.Length - 1);
                TextBoxTotale.AppendText(",");
            }



Ringrazio e fiducioso del suggerimento, saluto.
Domenico
119 messaggi dal 19 ottobre 2005
Ciao, guardando il codice, se è esattamente quello che compili, ci sono due errori:

1) Alla prima riga hai scritto TextBox2Text = "1.300,00"; invece di TextBox2.Text = "1.300,00"; (manca il punto tra il nome del controllo [TextBox2] e la proprietà [Text]).
2) C'è un ToString di troppo nella riga TextBoxTotale.Text = (float.Parse(TextBox1.Text) + float.Parse(TextBox2.Text) + float.Parse(TextBox3.Text) + float.Parse(TextBox4.Text).ToString());.

Il listato che hai proposto e corretto (non l'ho provato) dovrebbe essere il seguente:

TextBox1.Text = "23.112,00"; TextBox2.Text = "1.300,00"; TextBox3.Text = "856,35"; TextBox4.Text = "250,00"; 

TextBoxTotale.Text = (float.Parse(TextBox1.Text) + float.Parse(TextBox2.Text) + float.Parse(TextBox3.Text) + float.Parse(TextBox4.Text)); 

// .....
            }

Modificato da santoni1981 il 02 luglio 2022 19:22 -
128 messaggi dal 01 novembre 2012
Gent.mo Santoni,

ringrazio della cortesia e disponibilità.

Con copia incolla a volte l'errore ci scappa.
Fa piacere che il codice è esatto ed eliminando al
finale TOSTRING() vi è errore: "Non è possibile convertire float in string".

Il problema che riscontro è che la somma rispetto all'Excel non è esatta.

Mi scuso e fiducioso, saluto.
Domenico.
119 messaggi dal 19 ottobre 2005
Scusa ho sbagliato anche io a spiegarmi e a riportare il codice.
Il .ToString ci va ma alla fine, sommi tutti i valori come float e poi lo riporti nella text come stringa.

TextBoxTotale.Text = (float.Parse(TextBox1.Text) + float.Parse(TextBox2.Text) + float.Parse(TextBox3.Text) + float.Parse(TextBox4.Text)).ToString(); 
128 messaggi dal 01 novembre 2012
Buongiorno,

ringrazio ed il codice è esatto.

Il problema che riscontro è la somma che non
viene preso in considerazione l'importo dell'ultima
TextBox.
Ho provato ad inserire una TextBox con proprietà "invisibile"
inserendo un importo di 1,00, la somma è perfetta.
Non comprendo il motivo.
Saluto.
Domenico.
843 messaggi dal 08 aprile 2009
il problema è come tratti il separatore dei decimali.
Il modo con cui scrivi è italiano e quindi o setti la globalizzazione impostando che il separatore dei decimali è il comma o più brutto replichi i punti in vuoto e poi la virgola in punto e a quel punto fai il parse.
128 messaggi dal 01 novembre 2012
Gent.mo Laurar181,

ringrazio della disponibilità.

Uso la virgola per i decimali (1.237,00).

Ripeto il problema è alla somma che non
prende in considerazione l'ultima TextBox.

Recentemente per prova ho inserito una
TextBox con un importo casuale (1,00),
La TextBox con proprietà "Invisibile" e
la somma non ho problemi (non è esatto)
il procedimento.

Buon proseguimento di giornata, saluto.
Domenico
843 messaggi dal 08 aprile 2009
hai provato con decimal.parse invece che con float.parse?

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.