2014-02-21 23 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”))' –