[英]How can I format a number into a string with leading zeros?
我有一個需要轉換為字符串的數字。 首先我使用了這個:
Key = i.ToString();
但我意識到它以奇怪的順序排序,所以我需要用零填充它。 我怎么能這樣做?
相當簡單:
Key = i.ToString("D2");
D
代表“十進制數”, 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)。
對於內插字符串:
$"Int value: {someInt:D4} or {someInt:0000}. Float: {someFloat: 00.00}"
通常 String.Format("format", object) 比 object.ToString("format") 更可取。 所以,
String.Format("{0:00000}", 15);
更可取的是,
Key = i.ToString("000000");
嘗試:
Key = i.ToString("000000");
不過,就個人而言,我想看看您是否不能直接對整數進行排序,而不是對字符串表示進行排序。
在這里,我希望我的 no 限制為 4 位數字,如果是 1,則應顯示為 0001,如果是 11,則應顯示為 0011..下面是代碼。
reciptno=1;//Pass only integer.
string formatted = string.Format("{0:0000}", reciptno);
TxtRecNo.Text = formatted;//Output=0001..
我實現了此代碼以生成收據編號。
int num=1;
string number=num.ToString().PadLeft(4, '0')
輸出="00001"
編輯:更改為匹配 PadLeft 數量
我找到了一種更好的方法,一直嘗試但對我不起作用
Convert.ToDecimal(LN).ToString("000000#");
LN 是 Int64
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.