2012-05-10 6 views
5

Come faccio a formattare un galleggiante per stringa:Float a stringa con almeno una cifra dopo il periodo di

1 => "1.0"

1,12345 => "1,12,345 mila"

Invece di:

String.Format("{0:0.0}", 123.0); // Limit amount of digits 

Grazie!

+1

Invece di {0: 0.0}? Stai cercando un'alternativa a string.Format() o stai sostenendo che il tuo esempio precedente non funziona, perché credo che lo faccia. –

+0

Grazie per il tuo commento. Sì, sto cercando qualcosa per sostituire {0: 0.0}, ma l'ho provato. Limita a solo una cifra dopo il periodo. –

risposta

8

Esiste un limite massimo di per il numero di cifre ?

È possibile invece utilizzare:

String.Format("{0:0.0#####}", floatVal) 

è possibile estendere la # fuori per quello che vuoi/considera ragionevole. Dopo lo . dello specificatore di formato, un numero 0 indica la posizione decimale di precisione se viene sempre visualizzato, mentre # indica che deve essere mostrato se presente.

+0

È un'opzione molto buona. Non ho il controllo di quanto siano precisi, ma posso aggiungere un sacco di # se necessario. –

0
float f = 1.45783f; 
string result = f.ToString("f2"); 
+0

Spiacente, non ha funzionato per me: f = 1.0 => "1.00", f = 1.2345 => "1.23" –

0

toString() può richiedere un IFormatProvider che consente di formattare vari tipi di dati in altri formati.

float f = 1.45783f; 
string result = f.ToString("f2"); 
+0

Grazie per il vostro feedback. Cordiali saluti: f.ToString (formato) e String.Format (formato, f) sono fondamentalmente identici. –

Problemi correlati