2010-08-11 53 views
34

我想格式化文本框的內容:如何插入千個分隔符(逗號)與轉換翻一番

this.lblSearchResults1.Text = 
    Convert.ToDouble(lblSearchResults1.Text).ToString(); 

怎樣更改,這樣我的文本包含逗號/千位分隔符? 1000

+0

我也發現這很實用http://john-sheehan.com/blog/wp-content/uploads/msnet-formatting-strings.pdf – 2010-08-11 09:35:29

+2

看看這個答案http://stackoverflow.com/questions/752145/use-a-custom-thousand-separator-in-c – 2010-08-11 09:15:58

回答

40

對於完整的定製控制

即1000代替,使用它們的... .ToString("#,##0.00")或變化。你可以讓你自己的圖片,像0.0#

要使用取決於用戶模式(或選定)的文化,使用The Numeric ("N") Format Specifier,如.ToString("N")"... {0:N}"

+0

我遵循這種方法,但在Windows Server 2012上得到了相反的結果,'530000'變成了'000,530' – Akbari 2016-05-24 06:13:23

+0

徹底研究,然後可能發佈一個單獨的問題用[可證實的例子](http://stackoverflow.com/help/mcve)。包括計算機的文化設置。 – 2016-05-24 07:31:53

62

望着standard numeric format strings

你可以很容易地使用「N」,這將做正確的事根據用戶的文化,所以你的情況,你可以只添加「N」作爲一個參數去了toString

([double]12345.67).ToString("N") 

12,345.67

+13

這應該是被接受的答案。 – jwueller 2014-01-22 15:51:00

+0

這個答案略好於ToString(「#,## 0.00」),它的工作原理相同,也適用於不同文化背景下的不同千位分隔符(例如德國的「。」和瑞士的「'」)。但ToString(「N」)更清楚地表明格式可能是特定於文化的。 – Knasterbax 2016-02-17 14:55:50

+0

尊重這個人的個人文化爲我贏得勝利。但是,將整數顯示爲整數而不是浮點數? – Xonatron 2018-01-18 01:16:26

0

這樣做會是這樣的最簡單的方法:

Convert.ToDouble("1234567.12345").ToString("N") 

如果你想控制的小數位,你可以這樣做:在上的ToString重載更多令人興奮的可能性

Convert.ToDouble("1234567.12345").ToString("N3") 

一般的樣子。

4

如果您在Standard Numeric Format Strings仔細看看,你可以嘗試以下方法之一:

.ToString("n", CultureInfo.GetCultureInfo("en-US")) 
.ToString("n", CultureInfo.GetCultureInfo("de-DE")) 
.ToString("n", CultureInfo.CurrentCulture) 
5

到上述的其他提及的反應是使用

this.lblSearchResults1.Text = String.Format("{0:N}", Convert.ToDouble(lblSearchResults1.Text)) 

如果你想小數,只需輸入您希望在N之後的小數位數。下面的示例將返回小數點後兩位的值。

this.lblSearchResults1.Text = String.Format("{0:N2}", Convert.ToDouble(lblSearchResults1.Text)) 

查看http://msdn.microsoft.com/en-us/library/system.string.format.aspx瞭解更多信息。

相關問題