2011-02-06 23 views
5

Ho un doppio valore. Voglio formattare questo valore nel formato di x.yz. Come faccio a fare questo? Continuo a ricevere le cifre troncate. Qualcuno può dirmi come farlo in C#?Formato doppio in C#

Grazie!

+2

'myDouble.ToString (" 0.00 ");'? –

+0

Puoi fornire un esempio più concreto, oltre a controllare le domande collegate nella parte destra della pagina sotto "Correlati". – ChrisF

+0

@ Jeff M - Grazie! Ho pensato che zeri significava che sarebbe stato mostrato uno zero. – user70192

risposta

5

Utilizzando stringhe di formato è spiegato in:

Ad esempio, provate:

  • (0.56789).ToString("F2")
  • (0.56789).ToString("0.00").

Si noti che il valore risultante NON viene troncato, ma arrotondato in entrambi i casi, con conseguente "0.57".

2

provato qualcosa in questo modo, utilizzando ToString?

doubleNumber = -1898300.1937; 
Console.WriteLine(doubleNumber.ToString("F2", CultureInfo.InvariantCulture)); 
// Displays -1898300.19 
9

cifre dopo la virgola decimale

Questo esempio Formati doppia a stringa con numero fisso di cifre decimali. Per due cifre decimali utilizzare il modello "0.00". Se un numero a virgola mobile ha meno cifre decimali, le cifre rimanenti a destra saranno zero. Se ha più cifre decimali, il numero sarà arrotondato.

// just two decimal places 
String.Format("{0:0.00}", 123.4567);  // "123.46" 
String.Format("{0:0.00}", 123.4);   // "123.40" 
String.Format("{0:0.00}", 123.0);   // "123.00" 

esempio successivo formatta doppia a stringa con il numero di cifre decimali galleggiante. Per esempio. per le due posizioni decimali massime utilizzare il modello "0. ##".

// max. two decimal places 
String.Format("{0:0.##}", 123.4567);  // "123.46" 
String.Format("{0:0.##}", 123.4);   // "123.4" 
String.Format("{0:0.##}", 123.0);   // "123" 

cifre prima del punto

decimale Se si desidera un numero float di avere tutto il numero minimo di cifre prima dell'uso punto decimale N-volte a zero prima della virgola. Per esempio. pattern "00.0" formatta un numero float in stringa con almeno due cifre prima del punto decimale e una cifra dopo.

// at least two digits before decimal point 
String.Format("{0:00.0}", 123.4567);  // "123.5" 
String.Format("{0:00.0}", 23.4567);  // "23.5" 
String.Format("{0:00.0}", 3.4567);  // "03.5" 
String.Format("{0:00.0}", -3.4567);  // "-03.5" 

Migliaia separatore

Per formattare doppia a stringa con l'uso di migliaia separatore utilizzare zero e separatore virgola prima un galleggiante solito formattazione modello, ad esempio pattern "0,0.0" formatta il numero per utilizzare i separatori di migliaia e per avere una cifra decimale.

String.Format("{0:0,0.0}", 12345.67);  // "12,345.7" 
String.Format("{0:0,0}", 12345.67);  // "12,346" 

Zero

numeri float tra zero e uno possono essere formattati in due modi, con o senza zero prima della virgola. Per formattare il numero senza zero iniziale utilizzare # prima del punto. Ad esempio "# .0" numero di formati per avere una cifra decimale e da zero a N cifre prima del punto decimale (ad esempio ".5" o "123.5").

Il codice seguente mostra come può essere formattato uno zero (di tipo doppio).

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

numeri allinearsi con spazi

Per allineare il numero float a destra utilizzo virgola “” opzione prima dei due punti. Digita la virgola seguita da un numero di spazi, ad es. "0,10: 0.0" (questo può essere utilizzato solo nel metodo String.Format, non nel metodo double.ToString). Per allineare i numeri a sinistra utilizzare il numero negativo di spazi.

String.Format("{0,10:0.0}", 123.4567); // "  123.5" 
String.Format("{0,-10:0.0}", 123.4567); // "123.5  " 
String.Format("{0,10:0.0}", -123.4567); // " -123.5" 
String.Format("{0,-10:0.0}", -123.4567); // "-123.5 " 

formattazione personalizzata per i numeri negativi e lo zero

Se è necessario utilizzare il formato personalizzato per i numeri float negativi o pari a zero, utilizzare il separatore virgola “;” per dividere modello a tre sezioni. La prima sezione formatta numeri positivi, la seconda sezione formatta numeri negativi e la terza sezione formati zero. Se ometti l'ultima sezione, zero verrà formattato usando la prima sezione.

String.Format("{0:0.00;minus 0.00;zero}", 123.4567); // "123.46" 
String.Format("{0:0.00;minus 0.00;zero}", -123.4567); // "minus 123.46" 
String.Format("{0:0.00;minus 0.00;zero}", 0.0);  // "zero" 

http://www.csharp-examples.net/string-format-double/

0

sto usando Math.Round Method

Math.Round(yourdouble, 2) 

è anche possibile specificare la regola di arrotondamento.