哪种数据结构(或类型)可用于定义数字的位数?
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 了解更多信息。
各位程序员大家好,
我知道这应该很容易,但我需要定义一个数字的位数以尝试项目中的所有组合。位数不应受到用户操作的影响,因为位数的变化会导致 "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 了解更多信息。