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