文字列に変換する必要がある番号があります。まずこれを使いました。
Key = i.ToString();
しかし、私はそれが奇妙な順序でソートされていることに気付いたので、ゼロで埋め込む必要があります。どうすればいいの?
かなり単純です。
Key = i.ToString("D2");
D
は "decimal number"を表し、2
は印刷する桁数を表します。
String.Formatの使用例については、C#の 文字列フォーマット を参照してください。
実際のところ、 intのフォーマットのより良い例
String.Format("{0:00000}", 15); // "00015"
または 文字列補間 を使用します。
$"{15:00000}"; // "00015"
あなたがそれを固定幅、例えば10桁のままにしておきたいならば、これをこのようにしてください
Key = i.ToString("0000000000");
好きなだけ数字に置き換えてください。
i = 123
はKey = "0000000123"
になります。
C#バージョン6以降(つまり、Visual Studio 2015)を使用している場合は、まだ誰もこれに言及していないため、 文字列補間 を使用してコードを単純化できます。 string.Format(...)
を使う代わりに、こうすることができます。
Key = $"{i:D2}";
つかいます:
i.ToString("D10")
Int32.ToString (MSDN)、および 標準数値フォーマット文字列 (( MSDN)。
またはString.PadLeft
を使用してください。例えば、
int i = 321;
Key = i.ToString().PadLeft(10, '0');
0000000321
になります。 String.PadLeft
は負の数に対しては機能しません。
String.PadLeft (MSDN)を参照してください。
通常、String.Format( "format"、object)がobject.ToString( "format")よりも優先されます。したがって、
String.Format("{0:00000}", 15);
より好ましい
Key = i.ToString("000000");
試してください:
Key = i.ToString("000000");
個人的には、しかし、私はあなたが文字列表現ではなく直接整数でソートすることができないかどうか見るでしょう。
ここで私はそれが1であるならそれが0001と表示されるべきである11のようにそれが0011と表示するべきであるように4桁で制限することを望む。
reciptno=1;//Pass only integer.
string formatted = string.Format("{0:0000}", reciptno);
TxtRecNo.Text = formatted;//Output=0001..
私はMoneyレシート番号を生成するためにこのコードを実装しました。
int num=1;
string number=num.ToString().PadLeft(4, '0')
出力= "00001"
編集:PadLeftの金額に合わせて変更
補間文字列の場合:
$"Int value: {someInt:D4} or {someInt:0000}. Float: {someFloat: 00.00}"