2010-07-14 11 views
10

Ho codice come:Come si formatta un doppio in una stringa e si visualizzano solo cifre decimali quando necessario?

lblFranshizShowInvwNoskhehEdit.Text = string.Format("{0:n}", 
    (double)(int.Parse(drDarman["FranshizDarsad"].ToString()) * 
     Convert.ToInt64(RadNumerictxtPayInvwNoskhehEdit.Text))/100); 

Ma {0:n0} formato di stringa costringe il testo dell'etichetta di non avere cifre decimali e {0:n} formato di stringa costringe il testo dell'etichetta di avere 2 cifre decimali (default).

Nel mio scenario voglio solo cifre decimali quando necessario/senza arrotondarle/come posso farlo?

+4

Si prega di don' t metti cose come "asp.net/C#" nel titolo - usa semplicemente i tag per questo. Inoltre, questo non ha nulla a che fare con ASP.NET tranne per il fatto che si sta piazzando la stringa che si ottiene nella proprietà 'Text' di un controllo' Label'. –

risposta

23

si può solo fare:

string.Format("{0}", yourDouble); 

Esso comprenderà solo cifre quando necessario.

Se si desidera che altri esempi di formattazione vengano raddoppiati, verificare questo link.

EDIT: In base al commento che si desidera il , separatore in modo che si possa fare:

string.Format("{0:0,0.########}", yourDouble); 

Basta mettere il maggior numero # per il numero massimo di cifre decimali che si desidera visualizzare. Visualizzerà le cifre solo se necessario ma fino alle cifre massime in base al numero di # da includere nel formato. Il # significa solo mostrare una cifra se necessario, quindi se si assegna un numero come 123 senza decimali, verrà visualizzato come 1,234 ma se lo si dà 1234.456, verrà visualizzato come 1,234.456. Se superi le cifre massime specificate, verranno arrotondate.

EDIT: Per risolvere il tuo doppio scenario a zero solo modificarla in:

string.Format("{0:#,0.########}", yourDouble); 

che dovrebbe funzionare perfettamente ora :)

+0

ma in questo caso perderò mille separatori! come posso risolvere questo? – MoonLight

+0

davvero molto apprezzato per la tua modifica // mi scuso davvero/ma in questo nuovo codice 0.4 è come 00.4 ... come risolvere questo problema? – MoonLight

+0

@LostLord ha aggiornato la mia risposta per risolvere il problema. Spero possa aiutare. – Kelsey

0

questo è mio:

string.Format("{0:n2}", double); 
Problemi correlati