我有一个数字需要转换为字符串。首先我使用了这个:
Key = i.ToString();
但我发现它的排序很奇怪,所以我需要用零填充它。 我该怎么做?
我有一个数字需要转换为字符串。首先我使用了这个:
Key = i.ToString();
但我发现它的排序很奇怪,所以我需要用零填充它。 我该怎么做?
Key = i.ToString("D2");
D
代表"十进制数",2
代表要打印的数字位数。
string.Format("D2", value)
,输出结果将是 D2
,但这行代码并不能起作用。在这种情况下我们必须使用 "{0:00}"
。 - v.oddoustring.Format("{0:D2}", value)
。仅使用string.Format("D2", ...)
是不会替换任何东西的,因为你没有占位符。 - infinitypandavalue
是整数的情况。如果 value
是双精度数,就需要使用 string.Format("{0:00}", value)
。 - derekantricanSystem.FormatException
错误。最好使用.ToString("N0").PadLeft(2, '0')
。但是,PadLeft
在负数(负号前面的零)上无法正常工作。 - CodingwizString.Format("{0:00000}", 15); // "00015"
$"{15:00000}"; // "00015"
$"{15:D5}";
的输出结果为:"00015"。 - Al Dassint i
并且想要8位数字,只需要使用 var iStr = $"{i:D8}
。 - MattKey = 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");
个人而言,我建议你尝试直接按整数排序,而不是按字符串表示排序。
int num=1;
string number=num.ToString().PadLeft(4, '0')
输出="00001"
编辑: 更改以匹配PadLeft数量
我希望在这里我的数字限制为四位,例如如果是1,则应显示为0001,如果是11,则应显示为0011。以下是代码。
reciptno=1;//Pass only integer.
string formatted = string.Format("{0:0000}", reciptno);
TxtRecNo.Text = formatted;//Output=0001..