可能重复:
C# 将 int 转换为带有填充零的字符串?
我正在尝试生成一个随机数,但是在我包含的范围内“0000000、9999999”我希望它在生成数字时显示这些零,例如以下输出将是:
“00037544” “01659369” “75484957” “00000001”
我正在使用:
int num = rnd.Next(0000000, 9999999);
问题是有时它会产生:
“1648”“947596”“18500”等
有什么我想念的吗?
感谢您的关注
可能重复:
C# 将 int 转换为带有填充零的字符串?
我正在尝试生成一个随机数,但是在我包含的范围内“0000000、9999999”我希望它在生成数字时显示这些零,例如以下输出将是:
“00037544” “01659369” “75484957” “00000001”
我正在使用:
int num = rnd.Next(0000000, 9999999);
问题是有时它会产生:
“1648”“947596”“18500”等
有什么我想念的吗?
感谢您的关注
您必须将其转换为字符串,然后使用PadLeft
.
string number = num.ToString().PadLeft(7, '0');
或者简单地说
string number = num.ToString("0000000");
int
只代表一个数字;它不知道它有多少个零。
当您显示该数字时,您可以给它任意数量的前导零。
例如,num.ToString("D7")
将创建一个具有足够前导零的字符串以使其长度为 7 位,就像String.Format("{0:D7}", num)
. Console.WriteLine("{0:D7}", num)
以同样的方式工作。
看看文档。
您正在生成整数,并且需要格式化它们。类似的东西num.ToString("0000000")
就足够了。
左边有零的任何数字在逻辑上与没有这些零的相同数字相同。我认为您想要的是一种在屏幕上打印零的方法。
示例:5 等于 00005;但你想用 5 位打印数字 5。您执行此操作的方式取决于语言。
试试这个:
Random rnd = new Random();
int num = rnd.Next(0000000, 9999999);
string num2 = num.ToString("D7");