我正在尝试生成一个随机数但是在我已经包含的范围“0000000,9999999”我希望它在生成数字时显示这些零,例如以下输出将是:
“00037544” “01659369” “75484957” “00000001”
我正在使用:
int num = rnd.Next(0000000, 9999999);
问题在于它有时会产生:
“1648” “947596” “18500”等
有什么东西我不见了吗?
感谢您寻找
答案 0 :(得分:8)
您必须将其转换为字符串,然后使用PadLeft
。
string number = num.ToString().PadLeft(7, '0');
或者只是
string number = num.ToString("0000000");
答案 1 :(得分:7)
int
只代表一个数字;它不知道它有多少个零。
当您显示该号码时,您可以根据需要为其提供尽可能多的前导零。
For example,num.ToString("D7")
将创建一个包含足够前导零的字符串,使其长度为7位,String.Format("{0:D7}", num)
也是如此。 Console.WriteLine("{0:D7}", num)
的工作方式相同。
答案 2 :(得分:0)
查看docs。
您正在生成整数,您需要格式化它们。像num.ToString("0000000")
这样的东西就足够了。
答案 3 :(得分:0)
左边的零的任何数字在逻辑上与没有这些零的相同数字相同。我想你想要的是一种在屏幕上打印零的方法。
示例:5等于00005;但是你想用5位数打印5号。 你这样做的方式取决于语言。
答案 4 :(得分:0)
试试这个:
Random rnd = new Random();
int num = rnd.Next(0000000, 9999999);
string num2 = num.ToString("D7");