十进制值在模拟器上工作,但在实际手机上不起作用

时间:2017-03-24 18:31:00

标签: c# android xamarin

我的应用程序在xamarin android模拟器(API 22)上正常运行但在我在实际手机(也是API 22)上运行应用程序并输入小数值时崩溃了。 (模拟器正确处理小数) 这是我在axml文件中的edittext字段的样子。

             <EditText
        android:inputType="numberDecimal|numberSigned"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/inputA"
        android:layout_marginRight="250dp"
        android:paddingLeft="8dp" />

然后我使用FindViewById方法访问它。

         a = FindViewById<EditText>(Resource.Id.inputA);

当用户按下按钮时,我正在转换edittext输入,如下所示:

          double factorA = Convert.ToDouble(a.Text);

我有多个edittext字段,我用与上述完全相同的方式处理它们,并在将它们转换为double后进行我的计算。

编辑: 有人可能会觉得这很有用,而不是使用

               double factorA = Convert.ToDouble(a.Text);

我用过

      double factorA = double.Parse(a.Text, CultureInfo.InvariantCulture);

似乎工作;)

2 个答案:

答案 0 :(得分:0)

您可以尝试以这种方式解析

Double factorA = Double.valueOf(a.Text);

答案 1 :(得分:0)

您是否使用逗号或句号来分隔数字的小数部分?

阅读此文档Parsing Numeric Strings以了解有关它的更多信息。