2011-12-11 70 views
48

可能重複:
Number formatting: how to convert 1 to "01", 2 to "02", etc.?將int(數字)轉換爲前導零的字符串? (4位)

如何使用下面的方案我轉換intstring

  • 1轉換爲0001
  • 123轉換爲0123

當然,字符串的長度是動態的。對於此示例,它是:

int length = 4; 

我該如何轉換它?

+0

http://stackoverflow.com/questions/4432734/c-sharp-pad-left-to-string,HTTP://計算器.com/questions/5972949/number-formatting,http://stackoverflow.com/questions/4325267/c-sharp-convert-int-to-string-with-padding-zeros – 2011-12-11 07:59:04

回答

78

使用String.PadLeft這樣的:

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

c = 1 a =「%03d」 %(c)這個效果很好 – shiny

+1

這不是一個好的解決方案。使用這個,你必須找出數字的當前長度並添加適量的零。例如。 2爲零,12爲1,零爲123.使用.ToString(「Dx」)好得多。 – Arrkaye

+1

這是不正確的。 PadLeft將字母的總數作爲參數,而不是要添加的字母。所以「1」.PadLeft(4,'0')是「0001」。 – Jens

4

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

58

使用爲您提供的格式選項,使用Decimal格式字符串。與直接字符串操作相比,它更加靈活並且幾乎不需要維護。

要使用至少4位獲得字符串表示:

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