C#双打显示逗号而不是句号

我几乎和这个post中的人有同样的问题:

转换具有句点而不是逗号的浮点数?

这样我的

double x = 234.4; string y = x.ToString(); 

我得到y == "234,4" ;

更糟糕的是…… Double.Parse("234.4")抛出一个exception。

在我被要求使用句号而不是逗号之前,我已经写了很多代码,所以我更愿意在某种程度上改变我在全球范围内的CultureInfo

我可以做的项目中有一些设置吗?

我试过了:

  Application.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US"); 

他们有点工作。 它们适用于应用程序的大部分内容,但驻留在TabControl选项卡中的所有控件仍然希望使用我的计算机Localized CultureInfo

关于如何解决这个问题的任何想法?

你可以尝试使用

 double.Parse("...", CultureInfo.InvariantCulture) 

 x.ToString(CultureInfo.InvariantCulture) 

在你积极的程序部分,你需要有十进制句号而不是逗号或其他区域设置依赖小数分隔符。

希望能帮助到你。

感谢Florin Sabaus发表评论,我发现了解决方案

  Application.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US"); 

在我创建表单之前的Main()中。

现在我不必更改所有.ToString()和Double.Parse():-)是的!

试试这个解决方案: http : //www.codeproject.com/KB/cs/Change_App_Culture.aspx