C# doubles show comma instead of period

最后都变了- 提交于 2019-12-18 05:47:06

问题


I almost have the same problem as the guy in this thread:

Convert Float that has period instead of comma?

So that my

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

I get y == "234,4";

Even worse ... Double.Parse("234.4") throws an exception.

I have written alot of code before I was asked to use period instead of comma, so I would prefer to have some way to change my CultureInfo at a global level.

Is there some setting in the projects that I can do?

I've tried:

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

They kind of work. They work for most part of the application, but all controls that reside in the tabs of my TabControl still wants to use my computers Localized CultureInfo.

Any Ideas on how to solve this?


回答1:


You could try to use

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

and

x.ToString(CultureInfo.InvariantCulture)

in the parts of the program that you are positive you need to have decimal period instead of comma or other regional settings dependent decimal separator.

Hope it helps.




回答2:


Thanks to Florin Sabaus comment I found the solution, which was to place

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

in Main() right before I created my form.

Now I won't have to change all my .ToString() and Double.Parse() :-) Yey!




回答3:


Try this solution: http://www.codeproject.com/KB/cs/Change_App_Culture.aspx



来源:https://stackoverflow.com/questions/518625/c-sharp-doubles-show-comma-instead-of-period

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!