2010-04-19 146 views
2

我覺得我想要做一些簡單的事情,但我沒有得到我想要的結果。我想顯示一個基本的數字,這將始終是積極的。我不想要任何前導零,但我需要數千個分隔符。例如,對於下面的投入,我想以下的輸出:C#+字符串格式化

3 -> 3 
30 -> 30 
300 -> 300 
3000 -> 3,000 
30000 -> 30,000 
300000 -> 300,000 

目前,在試圖做到這一點,我使用以下格式代碼:

string text = "*Based on " + String.Format("{0:0,0}", total) + " entries"; 

目前,輸出看起來像這樣:

3 -> 03 
3000 -> 3,000 

您可以看到如何在不需要千位分隔符時添加前導「0」。如何正確格式化我的號碼?

謝謝

+0

聞起來像功課! – Nayan 2010-04-19 20:34:42

+0

不,它不!什麼讓你有那個想法? – 2010-04-19 21:25:40

回答

8
string.Format(new CultureInfo("en-US"), "{0:N0}", total) 

參見:Standard Numeric Format Strings

- 或 -

string.Format(new CultureInfo("en-US"), "{0:#,#}", total) 

參見:Custom Numeric Format Strings

+0

第一個將添加一個小數位,第二個不會。 – 2010-04-19 20:38:30

+0

注意'N0'中的'0' - 這指定了小數位數。 – dtb 2010-04-19 20:41:11

1

試試這個格式。

{0:#,##0}

1

你也可以這樣做:

string text = "*Based on " + total.ToString("#,##0") + " entries"; 
2

除了其他偉大的意見,你不應該使用字符串連接操作員。簡單地做到這一點:

string text = string.Format("*Based on {0:#,##0} entries", total); 

這使得它更容易閱讀,並且需要更少的工作。

0

下面是使用PowerShell的示例。重要的一點是格式字符串是"{0:n0}"

3, 30, 300, 3000, 30000, 300000, 3000000, 30000000 | 
    %{ "{0} -> {0:n0}" -f $_ } 

哪個生產:

PS C:\用戶\達米安> 3,30,300,3000,30000,300000,3000000,30000000 | %{「{0} - > {0:n0}」-f $ _}

3 -> 3 
30 -> 30 
300 -> 300 
3000 -> 3,000 
30000 -> 30,000 
300000 -> 300,000 
3000000 -> 3,000,000 
30000000 -> 30,000,000