簡體   English   中英

如何將數字格式化為帶前導零的字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM