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

Pre*_*ten 10 c# currentculture

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

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

这样我的

double x = 234.4;
string y = x.ToString();
Run Code Online (Sandbox Code Playgroud)

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

更糟糕的是... Double.Parse("234.4")抛出异常.

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

我可以在项目中设置一些设置吗?

我试过了:

        Application.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
        Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US");
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Run Code Online (Sandbox Code Playgroud)

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

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

Flo*_*bau 10

你可以尝试使用

double.Parse("...", CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)

x.ToString(CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)

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

希望能帮助到你.


Pre*_*ten 6

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

        Application.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
Run Code Online (Sandbox Code Playgroud)

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

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