2012-11-07 71 views
1

可能重复,以具有零的能力:
C# convert int to string with padding zeros?生成与7位的数字与前

我想在我的范围却产生一个随机数包括“0000000,99999999”我希望它显示这些零时,例如下面的输出将生成数字:

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

我使用的是:

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

有这个问题是有时它会产生:

“1648” “947596” “18500 “等

有什么,我想念?

感谢您寻找

+0

【如何:用前导零的数目 - MSDN(http://msdn.microsoft.com/en-us/library/dd260048.aspx) – Habib

回答

8

你必须把它转换成字符串,然后使用PadLeft

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

或者干脆

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

看一看的docs

你正在生成整数,你需要格式化它们。像num.ToString("0000000")应该就够了。

+0

它会不编译。 –

+0

对不起,忘记了这是C#。现在编辑。 – Serabe

0

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

例如:5等于00005;但是你想用5位数字打印数字5。 你会这样做的方式是语言依赖。

+0

看看标签。 – Serabe

+0

这仍然回答这个问题。 –

7

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

当您的显示该数字时,您可以根据需要为其指定多个前导零。

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

+0

我认为在最后一个例子中逗号''应该是冒号':'。请参阅[文档](http://msdn.microsoft.com/zh-cn/library/fht0f5be.aspx)的“备注”部分中的语法。 –

+0

@Jeppe yup,看起来你是对的。圣诞快乐:p – Rawling

0

试试这个:

  Random rnd = new Random(); 
     int num = rnd.Next(0000000, 9999999); 
     string num2 = num.ToString("D7"); 
+0

这不起作用仍然会返回5而不是7位数字。以前不显示整个数字。感谢您的尝试。 – Marshal

+0

:D ..但它在这里工作正常.. :( – iJay