【发布时间】:2013-01-19 14:54:42
【问题描述】:
所以我正在开发一个进行一些计算的应用程序。它从 txt 中读取一些数字,将它们转换为 double,然后将它们相乘后得到结果。
假设 txt 的数字是 10.5 和 2
string string1 = "10.5", string2 = "2";
double double1 = Convert.ToDouble(string1), double2=Convert.ToDouble(string2);
double double3=double1*double2;
textbox.text= double3.ToString();
我总是在模拟器上得到的结果是 21,而在我的设备上我得到 210。我尝试从手机重新安装应用程序,重新启动手机和电脑,我尝试了 10 多次。我仍然在手机上得到不同的结果。我该怎么办?
PS:我试过 double.parse 但还是一样
【问题讨论】:
-
听起来像是文化问题?是否可以将
.作为千位分隔符读取并忽略它? -
所以你建议添加“,”而不是“。” ?
-
但在模拟器上它工作得很好。这是为什么?
-
@user1924391 手机和模拟器可能在不同的语言环境下工作。一个解释“。”作为小数点,另一个将其解释为数字分隔符。
-
因为模拟器运行的语言环境与您的计算机相同;手机可能不行。尝试
Double.Parse并指定文化,看看是否能解决问题。
标签: c# windows-phone-7 windows-phone-7.1 windows-phone-8 windows-phone