Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - C# - Cifre dopo la virgola
Forum - C# / VB.NET - C# - Cifre dopo la virgola

Avatar
Gilean (Normal User)
Rookie


Messaggi: 54
Iscritto: 18/05/2008

Segnala al moderatore
Postato alle 14:26
Giovedė, 02/07/2009
Questo topic č stato chiuso dal moderatore

Salve a tutti. Ho delle textbox con delle stringhe che converto in double con double.parse. Mi piacerebbe mostrare, alla fine dei calcoli, in una textbox il risultato (un double) con un certo numero di cifre dopo la virgola (ivi compreso se fosse del tipo ,00). E' possibile?

PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 20:00
Giovedė, 02/07/2009
Puoi usare la funzione:
Codice sorgente - presumibilmente Plain Text

  1. Math.Round(numero, numero_cifre);


:k:

PM
Avatar
Gilean (Normal User)
Rookie


Messaggi: 54
Iscritto: 18/05/2008

Segnala al moderatore
Postato alle 22:48
Giovedė, 02/07/2009
grazie mille per il metodo, pero' il problema rimane. Se digito ad esempio una variabile double PREZZO=8000, nella texbox usando il math.round (PREZZO,3) mi da 8000 e non 8000,000. un ultmo aiutino? :)

Nello specifico io faccio questo

PRendo il valore da una textbox con double Prezzo =double.parse (textobox.text);
faccio una semplice operazione

double PREZZO_NUOVO=Math.Round(PREZZO * 2.0,3);

Inserisco questo in un 'altra textbox TextBox2.Text=PREZZO_NUOVO.ToString();

la textbox, se inserisco ad esempio 4 nella prima, mi visualizza 8 e non 8,00

Ultima modifica effettuata da Gilean il 02/07/2009 alle 22:51
PM
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 10:44
Venerdė, 03/07/2009
Ho appena scritto una funzione che fa al caso tuo in VB.Net, poi l'ho convertita in C# e ho trovato un problema! In pratica quando chiami...
Codice sorgente - presumibilmente Plain Text

  1. prezzo_nuovo.ToString();


...automaticamente ti eliminale cifre decimali! Invece non dovrebbe farlo...se trovo una soluzione te la posto!

Trovata la soluzione! :D ecco la funzione che ho scritto per aggiustare il numero:
Codice sorgente - presumibilmente C#

  1. public static string Aggiusta(double n, int x){
  2.                         string s=(n*Math.Pow(10,x)).ToString();
  3.                         return s.Insert(s.Length-x, ",");
  4.                 }


Anzichč chiamare il metodo prezzo_nuovo.ToString(), chiama la funzione Aggiusta(prezzo_nuovo, numerocifre) :) quindi il tuo codice diventa:
Codice sorgente - presumibilmente C# / VB.NET

  1. double prezzo=double.Parse(TextBox1.Text);
  2. double prezzo_nuovo=Math.Round(prezzo*2,3);
  3. TextBox2.Text=Aggiusta(prezzo_nuovo,3);


:k:

Ultima modifica effettuata da il 03/07/2009 alle 11:03
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 13:22
Venerdė, 03/07/2009
Bastava fare:
Codice sorgente - presumibilmente Plain Text

  1. String.Format("{0:N2}", Numero)


2 č il numero di cifre decimali dopo la virgola.

PM
Avatar
Gilean (Normal User)
Rookie


Messaggi: 54
Iscritto: 18/05/2008

Segnala al moderatore
Postato alle 14:51
Venerdė, 03/07/2009
Grazie mille TOTEM!!! mi dimentico sempre degli string format, eppure la classe String contiene quasi tutto il necessario. Grazie mille a tutti :)

PM