2009-07-30 54 views
5

如果我們使用C,N,P等內置格式,String.Format是否可以使用2種方式: ......它會將區域設置考慮在內? 如果我們使用自定義格式代碼(如#,## 0.000),它將不考慮區域設置?String.Format是否考慮locale或不?

在我的代碼中,我使用的方法是這樣

的String.Format( 「{0:### 0000}」,值);

因爲我國使用逗號作爲小數點分隔

但結果仍是:1,234.500,如果它認爲作爲點小數點分隔符。

請幫忙!

+5

你有沒有打擾過看String.Format的文檔? – 2009-07-30 02:35:42

回答

13

你想用CultureInfo

value.ToString("N", new CultureInfo("vn-VN")); 

使用String.Format

String.Format(new CultureInfo("vi-VN"), "N", value); 

既然你在河內是(從配置文件),我用越南的代碼,這是vn-VN

2

This Works。

IFormatProvider iFormatProvider = new System.Globalization.CultureInfo("es-ES"); 

string s = value.ToString("#,##0.000", iFormatProvider); 

string s2 = string.Format(iFormatProvider, "{0:#,##0.000}", val) 

注意,,.使用的是「標準」 EN-US風格,但.ToString()string.Format()與格式提供做正確的事。