2012-03-06 18 views
12

Ho un campo amount che è un numero decimale nel database. Ho bisogno di visualizzare sempre questa quantità con 10 numeri a sinistra del decimale e due dopo.C# Imbottitura Importo di zeri

Esempio:
Amount = 245.00 che dovrebbe mostrare come 0000000245.00 Inoltre, la quantità potrebbe essere più di 1.000 o 10.000 che dovrebbe mostrare come:

0000001245.00 e 0000011245.00

Come posso formattare la quantità di avere sempre il numero appropriato di zeri sul lato sinistro del decimale con una dimensione variabile?

risposta

23

Si dovrebbe mettere 0 nella vostra stringa di formato. Qualcosa come questo.

myValue.ToString("0000000000.00"); 

Questo vi darà sempre 10 cifre sul lato sinistro della virgola e due sulla destra.

Se non si desidera due cifre sul lato destro ... fare questo.

myValue.ToString("0000000000.##"); 

Questo dice hey se abbiamo un valore visualizzato; altrimenti, salta.

+0

Questo farà l'arrotondamento. –

8

Questo dovrebbe aiutare ... http://www.csharp-examples.net/string-format-int/

in modo da poter utilizzare questo

string.Format("{0:0000000000.00}", 15.25); // "0000000015.25"

+0

Ho pensato anche a questo, ma rileggo la domanda. Le cifre a destra del punto decimale dovrebbero variare e non sempre essere esattamente due. – Yuck

+0

@Yuck Questo non è il modo in cui lo capisco 'Ho bisogno di visualizzare sempre questo importo con 10 numeri a sinistra del decimale e due dopo .... non funzionerà con i numeri più grandi di 9999999999 però, perché poi lui ha 11 numeri davanti :) –

+0

Nota che ToString è più efficiente di string.Format. In altre parole, supponendo che 'd' sia una variabile decimale,' d.ToString ("0000000000.00") 'è più efficiente di' string.Format ("{0: 0000000000.00}}", d) ' – phoog

2

yourDecimalVariable.ToString ("0000000000,00") dovrebbe fare il trucco.