Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Windows Phone乘法浮点数在emulator上工作,但在设备上不工作_C#_Windows Phone 8_Windows Phone - Fatal编程技术网

C# Windows Phone乘法浮点数在emulator上工作,但在设备上不工作

C# Windows Phone乘法浮点数在emulator上工作,但在设备上不工作,c#,windows-phone-8,windows-phone,C#,Windows Phone 8,Windows Phone,这在windows phone emulator上运行良好,但在手机上,它完全忽略小数点和乘法,就像数字是整数一样 在emulator上,pricell最初是从一个数字(1.442)解析出来的,并转换成字符串,这样就可以将其放入文本框中。在emulator上,它将其转换为 1.442 在手机上,它将其转换为 1442 (注意不同的小数点) 但是,InputScope=“Number”仅显示小数点,而不显示逗号 正因为如此,priceTotal在模拟器上计算正确,但在手机上它忽略了小数点,并将其视

这在windows phone emulator上运行良好,但在手机上,它完全忽略小数点和乘法,就像数字是整数一样

在emulator上,pricell最初是从一个数字(1.442)解析出来的,并转换成字符串,这样就可以将其放入文本框中。在emulator上,它将其转换为
1.442
在手机上,它将其转换为
1442
(注意不同的小数点)

但是,
InputScope=“Number”
仅显示小数点,而不显示逗号

正因为如此,
priceTotal
在模拟器上计算正确,但在手机上它忽略了小数点
,并将其视为千位分隔符(我想是吧?),显然,
priceTotal
远远不够

经过一些研究,我想,这取决于地区格式,而数字键盘似乎没有本地化

我怎样才能做到这一点?如果可能的话,我是否在文本仍在输入时用本地化的小数点替换输入的小数点? 我应该在解析数字之前自动用点替换所有逗号吗

我可以将InputScope更改为普通,但这不会真正改变任何事情,因为一半的人会使用点输入数字,另一半人使用逗号


谢谢

您可以将当前的文化强加给我们:

priceTotal.Text = (float.Parse(priceLiter.Text) * float.Parse(litres.Text)).ToString();
或者您可以将其作为解析方法的参数:

CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US");

考虑它的另一种方式是,您应该在收到它时解析它。当用户将手机设置为荷兰语时,他希望使用,作为小数点。

您可以将当前文化强制给我们:

priceTotal.Text = (float.Parse(priceLiter.Text) * float.Parse(litres.Text)).ToString();
或者您可以将其作为解析方法的参数:

CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US");

考虑它的另一种方式是,您应该在收到它时解析它。当用户将手机设置为荷兰语时,他希望使用,作为小数点。

您可以将当前文化强制给我们:

priceTotal.Text = (float.Parse(priceLiter.Text) * float.Parse(litres.Text)).ToString();
或者您可以将其作为解析方法的参数:

CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US");

考虑它的另一种方式是,您应该在收到它时解析它。当用户将手机设置为荷兰语时,他希望使用,作为小数点。

您可以将当前文化强制给我们:

priceTotal.Text = (float.Parse(priceLiter.Text) * float.Parse(litres.Text)).ToString();
或者您可以将其作为解析方法的参数:

CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US");

考虑它的另一种方式是,您应该在收到它时解析它。当用户将手机设置为荷兰语时,他希望使用,作为小数点。

这可能是由于您的手机文化

只需在app.xaml.cs构造函数上编写这两行代码

float.Parse(a, CultureInfo.GetCultureInfo("en-US"));

问题不会再出现。

这可能是由于您的手机文化

只需在app.xaml.cs构造函数上编写这两行代码

float.Parse(a, CultureInfo.GetCultureInfo("en-US"));

问题不会再出现。

这可能是由于您的手机文化

只需在app.xaml.cs构造函数上编写这两行代码

float.Parse(a, CultureInfo.GetCultureInfo("en-US"));

问题不会再出现。

这可能是由于您的手机文化

只需在app.xaml.cs构造函数上编写这两行代码

float.Parse(a, CultureInfo.GetCultureInfo("en-US"));

这个问题再也不会出现了。

这当然很理想,而且只有当语言环境和键盘设置为相同时,或者如果两种语言碰巧使用相同的十进制分隔符时,它才会起作用。但是,解析器解析浮点的方式取决于语言环境分隔符,因此我必须让解析器以某种方式依赖于语言环境。理想情况下,对于电话区域设置使用逗号,而当前键盘使用点的情况,浮点解析器将把
1422
1.422
完全相同。我真的希望这个评论有意义,这让我很困惑,因为我对应用程序编程和C#和XAML非常陌生。你可以检查字符串中的“,”或“.”字符。如果只存在一个,那么让它来指导您使用什么文化进行解析。如果发现超过1个字符,您可能会使用无效的数字格式,您必须决定向用户显示什么样的验证错误。完美,就像一个符咒。我在应用程序启动时生成一个双3.14,并读取它的tostring值的第二个字符!这当然是很理想的,只有当语言环境和键盘设置为相同时,或者如果两种语言碰巧使用相同的十进制分隔符时,它才会起作用。然而,解析器解析浮点的方式取决于语言环境分隔符,因此我必须使解析器以某种方式依赖于语言环境。理想情况下,对于电话区域设置使用逗号,而当前键盘使用点的情况,浮点解析器将把
1422
1.422
完全相同。我真的希望这个评论有意义,这让我很困惑,因为我对应用程序编程和C#和XAML非常陌生。你可以检查字符串中的“,”或“.”字符。如果只存在一个,那么让它来指导您使用什么文化进行解析。如果发现超过1个字符,您可能会使用无效的数字格式,您必须决定向用户显示什么样的验证错误。完美,就像一个符咒。我在应用程序启动时生成一个双3.14,并读取它的tostring值的第二个字符!这当然是很理想的,只有当语言环境和键盘设置为相同时,或者如果两种语言碰巧使用相同的十进制分隔符时,它才会起作用。然而,解析器解析浮点的方式取决于语言环境分隔符,因此我必须使解析器以某种方式依赖于语言环境。理想情况下,对于电话区域设置使用逗号,而当前键盘使用点的情况,浮点解析器将把
1422
1.422
完全相同。我真的希望这个评论有意义,这让我很困惑,因为我对应用程序编程和C#和XAML非常陌生。你可以检查字符串中的“,”或“.”字符。如果只有一个人在场,那就让他来指引你