我有兴趣将一些数据(主要是数字)导出到Excel中,无论用户当前的文化是什么,我都需要它采用美国格式(即1,234,567.89)。我不想改变整个应用程序的文化。我只需要确保数字格式正确。我已经尝试为当前线程设置文化,但它似乎改变了整个应用程序的文化。任何帮助将不胜感激。
修改我的数据将在DataTable中。我是否需要浏览每个值并进行转换?
答案 0 :(得分: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.
}