在尝试解析double时,我看到Visual Studio中的模拟器和我的Lumia 820之间的行为有所不同。如果我有一个表示string stringdouble = 3.434233
的字符串,模拟器会正确地将其解析为相应的double值,但在调试模式下的Lumia 820上,我必须用逗号替换该点才能使其工作。造成这种差异的原因是什么?
答案 0 :(得分:4)
这是一个文化问题。
您的模拟器和手机可能设置了不同的文化,这就是您在结果方面存在差异的原因。使用设备或不变文化。
我建议在任何地方使用不变文化
double.Parse("3.5", CultureInfo.InvariantCulture)
或当前用户文化
double number = Double.Parse("202.667,40", CultureInfo.CurrentCulture);
用于解析和将数字转换为字符串,这将有助于避免您描述的错误