10

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

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

这样我的

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

我明白了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");

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

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

4

3 回答 3

11

你可以尝试使用

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

x.ToString(CultureInfo.InvariantCulture)

在您肯定的程序部分中,您需要使用小数点而不是逗号或其他区域设置相关的小数分隔符。

希望能帮助到你。

于 2009-02-06T00:37:10.173 回答
7

感谢 Florin Sabaus 的评论,我找到了解决方案,即放置

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

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

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

于 2009-02-06T08:10:37.840 回答
1

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

于 2009-02-06T00:44:35.323 回答