文字列に変換する必要がある数値があります。最初にこれを使用しました:
Key = i.ToString();
しかし、私はそれが奇妙な順序でソートされていることを理解しているので、ゼロで埋める必要があります。どうすればこれを行うことができますか?
文字列に変換する必要がある数値があります。最初にこれを使用しました:
Key = i.ToString();
しかし、私はそれが奇妙な順序でソートされていることを理解しているので、ゼロで埋める必要があります。どうすればこれを行うことができますか?
回答:
かなりシンプル:
Key = i.ToString("D2");
D
2
印刷する桁数を表す「10進数」を表します。
string.Format("D2", value)
するD2
と、出力が表示されます。これは機能しません。"{0:00}"
この場合は使用する必要があります。
string.Format("{0:D2}", value)
代わりに使用する必要があります。string.Format("D2", ...)
プレースホルダーがないので、言うだけでは何も置き換えられません。
value
intの場合にのみ機能することを認識しています。たとえばvalue
、がdoubleの場合、次のようになりますstring.Format("{0:00}", value)
String.Formatの使用例については、C#での文字列フォーマットを参照してください。
String.Format("{0:00000}", 15); // "00015"
または文字列補間を使用します:
$"{15:00000}"; // "00015"
10桁など、幅を固定したままにする場合は、次のようにします。
Key = i.ToString("0000000000");
好きなだけ数字に置き換えてください。
i = 123
結果はになりKey = "0000000123"
ます。
使用する:
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");
ここでは、1の場合は0001と表示されるように、4桁で制限する必要があります。11の場合は0011と表示される必要があります。以下はコードです。
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の量に合わせて変更