哪种数据结构(或类型)可用于定义数字的位数?

Which data structure(or type) would be useful for defining the digit amount of a number?

各位程序员大家好,

我知道这应该很容易,但我需要定义一个数字的位数以尝试项目中的所有组合。位数不应受到用户操作的影响,因为位数的变化会导致 "Index out of range" 错误。 (是的,我为此使用数组)

比方说,我必须使用四位数。

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 时指定格式 - 例如

string number = Nmr.ToString("0000");

查看文档:Int32.ToString(string) and Custom Numeric Format Strings

嗯,用 PadLeft String 的方法 class ...

int Nmr=1000;    
Nmr--;    
Console.Write(Nmr.ToString().PadLeft(4,'0')); //That gives you ever four digits.

或者如果你更喜欢更好的解释......

int Nmr=1000;    
Nmr--;    
String number = Nmr.ToString();
Console.Write(number.PadLeft(4,'0')); // four digits again;

“0”自定义格式说明符用作零占位符。 这里有一个小主意给你:

            double numberS;

            numberS = 123;
             Console.WriteLine(numberS.ToString("00000"));
             Console.WriteLine(String.Format("{0:00000}", value));
             // Displays 00123 

您可以查看 https://msdn.microsoft.com/en-us/library/0c899ak8.aspx 了解更多信息。