2012-11-07 115 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