2014-09-02 96 views
0

使用String.Format我怎麼能保證所有的數字有逗號如123000 = "1,23,000";如何添加逗號到數在C#

String.Format(CultureInfo.InvariantCulture,"{0:0,0}",amount); 

我喜歡輸出

123,234,000 

我不希望它。但我會期待輸出像

12,32,34,000 
+0

我相信你需要實現自定義數字格式提供... – 2014-09-02 07:17:47

+0

使用正則表達式,或者自己寫的字符串轉換函數 – 2014-09-02 07:17:58

+0

您能不能給簡單示例 – user3503297 2014-09-02 07:19:19

回答

1

您可以使用ToString(「N」),而不是。 ToString(「N」)將打印2個十進制數字。要擺脫這兩位數字,可以使用ToString(「N0」)。

編輯:爲了區分數字兩個兩個:

123123123123.ToString("#,#", new NumberFormatInfo() { NumberGroupSizes = new[] { 2 } }) 
1

嘗試這樣的:

int NewAmount=123456; 
String.Format("{0:##,##,##,###}", NewAmount) 
+0

組分隔符說明符(',')不能用於指定組的大小,因此結果爲'123,456'。 – Guffa 2014-09-02 10:07:59

0

看起來你需要在培養形式爲整數EN-IN 請嘗試以下

String.Format(new CultureInfo("en-IN"), "{0:0,0}", amount); 
3

您可以創建具有不同號碼組大小的格式信息:

NumberFormatInfo formatInfo = new NumberFormatInfo(); 
formatInfo.NumberGroupSizes = new int[] { 3, 2 }; 

int amount = 123234000; 
Console.WriteLine(String.Format(formatInfo, "{0:N0}", amount)); 

輸出:

12,32,34,000 
0

試試這個

123456789.ToString("N1", CultureInfo.CreateSpecificCulture("hi-IN")) 
0

我認爲你正試圖顯示爲印度貨幣。如果是這樣,這可能會有所幫助。

string fare = "1234567"; 
    decimal parsed = decimal.Parse(fare, CultureInfo.InvariantCulture); 
    CultureInfo hindi = new CultureInfo("hi-IN"); 
    string text = string.Format(hindi, "{0:c}", parsed); 
1
int num=123234000; 
Console.WriteLine(String.Format(
new System.Globalization.NumberFormatInfo() 
    { 
    NumberGroupSeparator=",", 
    NumberGroupSizes=new int[]{3,2} 
    }, 
"{0:#,#}", num)); 

輸出:

12,32,34,000