我有一些第三方代码,可以调用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()
。
感谢。
答案 0 :(得分:1)
您可以设置当前线程的文化信息,默认情况下使用该信息:
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
如果这是一个Web应用程序,您可以在culture
中设置<globalization>
元素的uiCulture
和web.config
属性。