繁体   English   中英

适用于Android的C#Mono-double.parse给出了奇怪的结果

[英]C# Mono for Android - double.parse is giving weird results

我正在使用C#和mono编写一个Android应用程序。 我需要从其中一个活动(Android表单)中获取一个字符串,并将其转换为双精度形式。 当我这样做时,我会得到非常奇怪的结果。 例如,以下(未完成)方法中的double.parse:

protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
        try
        {
            //add / edit the task
            if (resultCode == Result.Ok)
            {
                if (m_isAddMode)
                {

                    var tliTemplateControl = new TemplateControlTaskListItem();
                    tliTemplateControl.Code = data.GetStringExtra("selectedtask");
                    tliTemplateControl.Description = data.GetStringExtra("selecteddescription");
                    tliTemplateControl.RequiredQty = double.Parse(data.GetStringExtra("qty"));


                    m_taskList.Items.Add(tliTemplateControl);

                    this.ListAdapter = new TaskListAdapter(this, m_taskList.Items);
                }
                else
                {

                }
            }
        }
        catch (Exception ex)
        {

        }
    }

当要分析的文本为“ 2”时,返回-1.03054917417467E-05。 这在Visual Studio 2010中,适用于Android 4.2.3。 有人知道吗? 谢谢。

将事情更精细地划分。 将中间结果存储在变量中。 对每个语句做一件事-不要将一个计算的结果链接到另一计算。 使用调试器。 检查每一步会发生什么。

实际上,data.GetStringExtra(“ qty”)返回什么字符串? 尝试使用“ 2”测试其是否相等。 它周围是否有空格,或者它的长度有些奇怪? (毕竟,“ 2”应为一个字符长。)

如果使用字符串字面量运行double.Parse(“ 2”),会得到什么?

在某个时候,您要么看到自己在做错什么,要么会发现绝对是编译器或库区域的东西。 当您达到这一点时,您将知道下一步该怎么做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM