我使用CultureInfo来本地化我的应用程序:
CultureInfo newCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = newCulture;
Thread.CurrentThread.CurrentUICulture = newCulture;
我遇到了与标点符号有关的问题: 在我的本地数据库中(我从中获取了我的应用程序的所有有用数据),纬度和经度属性以点(即45.245135)存储,当CultureInfo设置为en-US时,这很好。但是,当我切换到我的母语时(点被认为是一千个标记)我的地图功能都无法工作。
如果我要更改处理这些值的代码的每一部分,那我就太难了。它或多或少地到处都是。
有关解决问题的任何想法吗?
答案 0 :(得分:0)
每当您转换为InvariantCulture
时,请尝试使用String
:
String stLattitude = "45.245135";
...
// String to Double
// Culture.InvariantCulture make the conversion Culture independent
Double lattitude = Double.Parse(stLattitude, Culture.InvariantCulture);
...
// Double To String
// Culture.InvariantCulture make the conversion Culture independent
String strLattitude = lattitude.ToString(Culture.InvariantCulture);
仅在向用户显示最终结果
时使用CurrentCulture
// Showing to user: that's why CurrentCulture (default) is used
Show(lattitude.ToString());