如何将数字格式化为带有前导零的字符串?
我有一个需要转换为字符串的数字。首先我使用了这个:
Key = i.ToString();
但我意识到它是以奇怪的顺序排序的,所以我需要用零填充它。我怎么能这样做呢?
I have a number that I need to convert to a string. First I used this:
Key = i.ToString();
But I realize it's being sorted in a strange order and so I need to pad it with zeros. How could I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
在这里,我希望我的否限制在 4 位数字,就像如果它是 1,它应该显示为 0001,如果它是 11,它应该显示为 0011..下面是代码。
我实现了此代码来生成收据号。
Here I want my no to limit in 4 digit like if it is 1 it should show as 0001,if it 11 it should show as 0011..Below are the code.
I implemented this code to generate Money receipt no.
我找到了一种更好的方法,一直尝试但对我不起作用
LN 是 Int64
I found a better way tried all the way but not worked for me
LN is Int64
由于还没有人提到这一点,如果您使用的是 C# 版本 6 或更高版本(即 Visual Studio 2015),那么您可以使用 字符串插值来简化您的代码。因此,您可以这样做,而不是使用
string.Format(...)
:Since nobody has yet mentioned this, if you are using C# version 6 or above (i.e. Visual Studio 2015) then you can use string interpolation to simplify your code. So instead of using
string.Format(...)
, you can just do this:使用:
请参阅 Int32.ToString (MSDN),以及 < a href="https://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx">标准数字格式字符串 (MSDN)。
或者使用
String.PadLeft
。例如,结果将是
0000000321
。虽然String.PadLeft
不适用于负数。请参阅 String.PadLeft (MSDN)。
use:
See Int32.ToString (MSDN), and Standard Numeric Format Strings (MSDN).
Or use
String.PadLeft
. For example,Would result in
0000000321
. ThoughString.PadLeft
would not work for negative numbers.See String.PadLeft (MSDN).
对于插值字符串:
For interpolated strings:
尝试:
不过,就个人而言,我会看看是否不能直接对整数而不是字符串表示形式进行排序。
Try:
Personally, though, I'd see if you can't sort on the integer directly, rather than the string representation.
通常 String.Format("format", object) 优于 object.ToString("format")。因此,
优选的是,
Usually String.Format("format", object) is preferable to object.ToString("format"). Therefore,
is preferable to,
输出 =“00001”
编辑:更改为匹配 PadLeft 数量
Output="00001"
EDIT: Changed to match the PadLeft amount
相当简单:
D
代表“十进制数”,2
代表要打印的位数。Rather simple:
D
stands for "decimal number",2
for the number of digits to print.请参阅 C# 中的字符串格式化,了解 String.Format 的一些使用
示例格式化 int
或使用字符串插值:
See String formatting in C# for some example uses of String.Format
Actually a better example of formatting int
or use String Interpolation:
如果您想保持固定宽度,例如 10 位数字,请像这样
替换为您喜欢的任意数量的数字。
i = 123
将生成Key = "0000000123"
。If you like to keep it fixed width, for example 10 digits, do it like this
Replace with as many digits as you like.
i = 123
will then result inKey = "0000000123"
.