使用CultureInfo进行本地化-标点符号
本文关键字:标点符号 本地化 CultureInfo 使用 | 更新日期: 2023-09-27 17:52:14
我使用CultureInfo来本地化我的应用程序:
CultureInfo newCulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = newCulture;
Thread.CurrentThread.CurrentUICulture = newCulture;
我遇到了一个与标点符号有关的问题:在我的本地数据库(从中我得到我的应用程序的所有有用的数据)的经度和纬度属性存储点(即45.245135),这是很好的,当CultureInfo设置为en-US。然而,当我切换到我的母语时(在这里点被认为是一千标记),我的地图功能都无法工作。
如果我要改变处理这些值的每一个代码位,那就太困难了,它或多或少无处不在。
有解决这个问题的办法吗?
当您从String
转换到/时,尝试使用InvariantCulture
:
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());