2010-06-23 3 views

Odpowiedz

27
Dim yourNumber as Int32 = 5 
yourNumber.ToString("D2") '= "05" 
+1

+1 Z dokumentów dotyczących specyfikatora D "Ten format jest obsługiwany tylko dla typów integralnych. Liczba jest konwertowana na ciąg cyfr dziesiętnych (0-9), poprzedzony znakiem minus, jeśli liczba jest ujemna. wskazuje minimalną liczbę cyfr w wynikowym łańcuchu.W razie potrzeby liczba jest uzupełniana zerami po lewej stronie, aby uzyskać liczbę cyfr podaną przez specyfikator precyzji. " http://msdn.microsoft.com/en-us/library/aa720653(v=VS.71).aspx – MarkJ

+0

daje mi InvalidCastException do IFormatProvider:/ –

+0

Jakiego kodu używasz? Powyższe powinno działać: http://ideone.com/wza8KE –

-3
if(number < 10){ 
    number = Int32.Parse("0" + number.ToString()); 
} 

myślę, że był jakiś C# dzieje :) ale powinien dostać ten pomysł.

+0

To zwróci Int32, a nie wyściełany sznur. – jvenema

+2

hmph ... Int32.Parse rozebrałby wiodącą liczbę 0, nie? – Piskvor

+0

Ops! Przepraszam za to^^ Nie myślałem prosto – Mattias

10

Spróbuj tego:

myNum.ToString().PadLeft(2, "0"); 
+0

Musisz ustawić szerokość jako 2 na prefiks z zero –

+0

Co oznacza "0-42"? –

+0

Dobry połów Iain – jvenema

3

Spróbuj następujących ...

Dim varNumber As Integer = 3 
Dim number As String = String.Format("{0:0#}", varNumber) 

nadzieję, że pomoże.

+0

Pierwszy wynik dla Google: format łańcucha vb.net zero. http://idunno.org/archive/2004/14/01/122.aspx – mcandre

+0

@mcandre: Nie mogę odwiedzić tego linku tutaj w pracy. czego mi brakuje? – Lance

+0

To przewodnik po formatowaniu ciągów VB.net, w tym dopełnieniu i różnych formatach. – mcandre

1

Stara metoda szkoły z VB6, nadal działa:

Dim yourNumber as Long = 5 
Format(yourNumber, "00") ' = "05" ' 

... tylko przez wzgląd na stare czasy :). Lepiej używać Tim's answer.