我几乎和这个帖子中的人有同样的问题:
Convert Float that has period instead of comma?
这样我的
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 。
关于如何解决这个问题的任何想法?
答案 0 :(得分:10)
您可以尝试使用
double.Parse("...", CultureInfo.InvariantCulture)
和
x.ToString(CultureInfo.InvariantCulture)
在你积极的程序部分你需要有十进制句号而不是逗号或其他区域设置依赖小数点分隔符。
希望它有所帮助。
答案 1 :(得分:5)
感谢Florin Sabaus的评论,我找到了解决方案,即放置
Application.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
在我创建表单之前,在Main()中。
现在我不必更改所有.ToString()和Double.Parse():-) Yey!
答案 2 :(得分:1)