2011-12-11 19 views
48

Olası Çoğalt:
Number formatting: how to convert 1 to "01", 2 to "02", etc.?Int (sayı), baştaki sıfırlarla dize dönüştürün mü? (4 hane)

nasıl aşağıdaki şemayı kullanarak string için int dönüştürebilir? 0001

  • 123 Tabii 0123
  • için dönüştürür

    • 1 dönüştürür, dize uzunluğu dinamiktir. Bu örnek için, bu değer:

      int length = 4; 
      

      Nasıl dönüştürebilirim? Böyle

    +0

    http://stackoverflow.com/questions/4432734/c-sharp-pad-left-to-string http: // stackoverflow .com/questions/5972949/sayı biçimlendirme, http://stackoverflow.com/questions/4325267/c-sharp-convert-int-to-string-with-padding-zeros –

    cevap

    78

    Kullanım String.PadLeft:

    var result = input.ToString().PadLeft(length, '0'); 
    
    +0

    c = 1 a = "% 03d" % (c) bu mükemmel çalışır – shiny

    +1

    Bu iyi bir çözüm değil. Bunu kullanarak, sayıların geçerli uzunluğunu belirlemeli ve doğru miktarda sıfır eklemelisiniz. Örneğin. 123 için 12 ve 1 sıfır için 2 sıfır. .ToString ("Dx") kullanmak çok daha iyidir. – Arrkaye

    +1

    Bu doğru değil. PadLeft, eklenecek olanı değil, bağımsız değişken olarak toplam harf sayısını alır. Yani "1" .PadLeft (4, '0') "0001" dir. – Jens

    4

    val.ToString("".PadLeft(length, '0'))

    58

    string text = no.ToString("0000"); 
    
    Kullanım biçimlendirme seçenekleri Decimal biçim dizesi kullanın. Çok daha esnektir ve doğrudan dizi manipülasyonuna kıyasla çok az bakım gerektirmez.

    en az 4 basamak kullanarak dize temsilini almak için:

    int length = 4; 
    int number = 50; 
    string asString = number.ToString("D" + length); //"0050" 
    
    İlgili konular