繁体   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