2012-03-13 24 views
0

Aarghhhhh !!!我刚才问如何输入数字只是现在我有问题,当我插入大量的代码,如:在文本框中写入数字时出现奇怪的结果

tbNum.Text = Convert.ToString(double.Parse(tbPerc.Text)); 

数量是int而不是double。因此,我得到了5623而不是562,3。如果有帮助,我已将InputScope设置为数字。谢谢!!!

事实上,我在Convert.ToString方法中有一些计算,但这是不相关的,因为在双精度之间计算的返回值是双精度值。

+6

所以你正在转换一个字符串到一个你转换为一个字符串的双?啊哈... – f2lollpll 2012-03-13 20:20:13

+0

看看[http://stackoverflow.com/questions/105770/net-string-format-to-add-commas-in-thousands-place-for-a-number](http:/ /stackoverflow.com/questions/105770/net-string-format-to-add-commas-in-thousands-place-for-a-number) – 2012-03-13 20:31:18

+0

你可以添加你正试图转换的样本价值? – Bryant 2012-03-13 21:24:31

回答

0

如果您使用InputScope和Number set,那么您使用的是“。”。作为十进制分隔符,而不是“,”(这就是键盘上显示的内容)

因此,我假设您的Windows Phone设备/仿真器假定“,”符号为千位分隔符(en-US默认值,每个例子),因此:

double.Parse("562,3") == 5623 
double.Parse("562.3") == 562.3 
+0

谢谢!我会试试这个! – Cippo 2012-03-15 15:43:50

+0

请注意,你应该使用'double.Parse(“562.3”,CultureInfo.InvariantCulture)'这样它会忽略系统范围的CultureInfo和使用一个不变(即有“”作为小数点分隔符) – 2012-03-15 16:11:24

0

我不能看到字符串转换为双为一个字符串的原因,但如果你插入562.3,而不是你的562,3示例将工作。

相关问题