1

可能重复:
C# 将 int 转换为带有填充零的字符串?

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

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

我正在使用:

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

问题是有时它会产生:

“1648”“947596”“18500”等

有什么我想念的吗?

感谢您的关注

4

5 回答 5

9

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

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

或者简单地说

string number = num.ToString("0000000");
于 2012-11-07T12:27:07.440 回答
8

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

当您显示该数字时,您可以给它任意数量的前导零。

例如num.ToString("D7")将创建一个具有足够前导零的字符串以使其长度为 7 位,就像String.Format("{0:D7}", num). Console.WriteLine("{0:D7}", num)以同样的方式工作。

于 2012-11-07T12:31:31.810 回答
0

看看文档

您正在生成整数,并且需要格式化它们。类似的东西num.ToString("0000000")就足够了。

于 2012-11-07T12:27:48.347 回答
0

左边有零的任何数字在逻辑上与没有这些零的相同数字相同。我认为您想要的是一种在屏幕上打印零的方法。

示例:5 等于 00005;但你想用 5 位打印数字 5。您执行此操作的方式取决于语言。

于 2012-11-07T12:28:35.563 回答
0

试试这个:

          Random rnd = new Random();
        int num = rnd.Next(0000000, 9999999);
        string num2 = num.ToString("D7");
于 2012-11-07T12:36:40.587 回答