2012-01-15 51 views
1

我有一些第三方代码,调用double.ToString()。我的问题是,默认double.ToString()实现替换小数点用逗号,像这样:.NET:是否可以更改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

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

Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture; 

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

+0

这么简单,如此真实。非常感谢。 – mark 2012-01-15 10:49:29

+0

@mark,很高兴我能帮上忙。还有其他你想问的问题吗?或者你可以考虑关闭这个问题? – 2012-01-15 10:51:02

+0

延迟2分钟,延迟2分钟。 – mark 2012-01-15 10:55:15

相关问题