【发布时间】:2015-08-26 01:28:50
【问题描述】:
各位程序员们好,
我知道这应该很容易,但我需要定义数字的位数以尝试项目中的所有组合。位数不应受到用户操作的影响,因为位数的变化会导致“索引超出范围”错误。 (是的,我为此使用了数组)
比方说,我必须使用四位数字。
int Nmr=1000;
Nmr--;
Console.Write(Nmr);// The output will be 999 but I need 0999
使用字符串类型和 if 语句可能会导致替代解决方案...
int Nmr=1000;
Nmr--;
string number=Nmr.ToString();
if (Nmr<1000) number="0"+number;
if (Nmr<100) number="00"+number;
if (Nmr<10) number="000"+number;
Console.Write(Nmr); //That gives me 0999
但是,它给我带来了复杂性和不必要的时间损失,这是我不想遇到的。我什至不是在谈论更大的价值。
那么,你有什么建议? 编辑: ToString("0000") 和 PadLeft 方法都很有用。
感谢 Mateus Coutinho Martino 和 Blorgbeard。 =)
【问题讨论】:
-
调用ToString时可以指定格式:
Nmr.ToString("0000"); -
如果您总是需要前导“0”,只需执行
Nmr.PadLeft('0',4)。这将确保您始终至少有 4 个字符,如果没有,它将添加您想要指定长度的字符 -
另外,您的替代解决方案会为小于 100 的数字添加太多零。您需要一些
else语句。
标签: c# algorithm math numbers digit