2011-12-11 37 views
48

可能性の重複:
Number formatting: how to convert 1 to "01", 2 to "02", etc.?int(数値)を先行ゼロの文字列に変換しますか? (4桁)

どのように私は次のスキームを使用してstringintを変換することができますか?

  • 10001
  • 123に変換するが、もちろん0123

に変換し、文字列の長さが動的です。このサンプルでは、​​

int length = 4; 

どのように変換できますか?このような

+0

http://stackoverflow.com/questions/4432734/c-sharp-pad-left-to-stringは、http://のstackoverflow .com/questions/5972949/number-formatting、http://stackoverflow.com/questions/4325267/c-sharp-convert-int-to-string-with-padding-zeros –

答えて

78

使用String.PadLeft

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

c = 1 a = "%03d" %(c)これは完全に動作します – shiny

+1

これは良い解決策ではありません。これを使うと、現在の数字の長さを把握し、適切な量のゼロを追加する必要があります。例えば。 2の場合は0、123の場合は12を返します.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" 
関連する問題