.NET:是否可以更改double.ToString()使用的格式?

时间:2012-01-15 10:36:52

标签: .net double globalization tostring

我有一些第三方代码,可以调用double.ToString()。我的问题是,默认的double.ToString()实现用逗号替换小数点,如下所示:

49.99.ToString() == "49,99"

会发生这种情况,因为默认double.ToString()使用CultureInfo.CurrentCulture,而我需要它CultureInfo.InvariantCulture。的确,观察:

49.99.ToString(CultureInfo.InvariantCulture) == "49.99"
49.99.ToString(CultureInfo.CurrentCulture) == "49,99"

有没有办法将当前文化更改为不变文化,以便double.ToString()能够按需要工作?

我希望尽可能避免修改第三方代码,所以请不要建议我使用ToString(IFormatProvider)重载而不是默认ToString()

感谢。

1 个答案:

答案 0 :(得分:1)

您可以设置当前线程的文化信息,默认情况下使用该信息:

Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

如果这是一个Web应用程序,您可以在culture中设置<globalization>元素的uiCultureweb.config属性。