生成一个7位数的数字,能够在前面加零

时间:2012-11-07 12:24:54

标签: c# winforms random numbers

  

可能重复:
  C# convert int to string with padding zeros?

我正在尝试生成一个随机数但是在我已经包含的范围“0000000,9999999”我希望它在生成数字时显示这些零,例如以下输出将是:

“00037544” “01659369” “75484957” “00000001”

我正在使用:

    int num = rnd.Next(0000000, 9999999);

问题在于它有时会产生:

“1648” “947596” “18500”等

有什么东西我不见了吗?

感谢您寻找

5 个答案:

答案 0 :(得分:8)

您必须将其转换为字符串,然后使用PadLeft

string number = num.ToString().PadLeft(7, '0');

或者只是

string number = num.ToString("0000000");

答案 1 :(得分:7)

int只代表一个数字;它不知道它有多少个零。

当您显示该号码时,您可以根据需要为其提供尽可能多的前导零。

For examplenum.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");