2014-02-21 20 views
0

我感興趣的一些數據(主要是數字)導出到Excel,我需要它是在美國的格式(即1,234,567.89)不管是用戶當前的文化。我不想爲整個應用程序改變文化。我只需要確保這些號碼的格式是正確的。我已經嘗試設置當前線程的文化,但它似乎改變了整個應用程序的文化。任何幫助將不勝感激。出口設置文化信息只有

編輯我的數據會在數據表。我是否需要檢查每個值並將其轉換?

回答

2

可以使用Convert.ToDecimal方法的重載版本之一:

var culture = new CultureInfo("en-US"); 
var convertedValue = Convert.ToDecimal(value, culture); 

如果你需要你可以使用ToString重載的一個字符串,例如:

var convertedValue = value.ToString(culture); 

您也可以使用string.Format過載:

String.Format(culture , "{0}", value); 

如果你想讓它反對不正確的值保護:

if (!decimal.TryParse(value, NumberStyles.Any, culture , out convertedValue)) 
{ 
    //the code in case the value could not be parsed. 
} 
+1

或者,你可以使用'的ToString()'重載需要一個'IFormatProvider'實例(這是由'CultureInfo'實現):'值.ToString(new CultureInfo(「en-US」))' –