2 fanage fanage 于 2016.03.27 18:05 提问

C#运行时出现错误,求大神指点

“System.FormatException”类型的未经处理的异常在 mscorlib.dll 中发生

其他信息: 输入字符串的格式不正确。

为什么doubleparse那里错了?

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 算数练习
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

    int a, b;
    int x,y;
    string op;

    int result;

    Random rnd = new Random();

    private void Form1_Load(object sender, EventArgs e)
    {

    }

    private void lalresult_Click(object sender, EventArgs e)
    {

    }

    private void lalA_Click(object sender, EventArgs e)
    {

    }

    private void rabtn100add_CheckedChanged(object sender, EventArgs e)
    {
        x = 99;
        y = 2;
    }

    private void rabtn10mul_CheckedChanged(object sender, EventArgs e)
    {
        x = 9;
        y = 4;
    }

    private void timexchange_Tick(object sender, EventArgs e)
    {
        a = rnd.Next(x) + 1;
        b = rnd.Next(x) + 1;
        int c = rnd.Next(y);
        switch (c)
        {
            case 0: op = "+"; result = a + b; break;
            case 1: op = "-"; result = a - b; break;
            case 2: op = "*"; result = a * b; break;
            case 3: op = "/"; result = a / b; break;
        }
        lalA.Text = a.ToString();
        lalop.Text = op;
        lalB.Text = b.ToString();
        txtAnswer.Text = "";
        string str = txtAnswer.Text;
        double d = double.Parse(str);//这里错了,怎么改?
        string disp = "" + a + op + b + "=" + str + "  ";
        if (d == result)
            disp += "√";
        else
            disp += "×";
        listBox1.Items.Add(disp);
    }

    private void btnfast_Click(object sender, EventArgs e)
    {
        timexchange.Interval -= 500;
    }

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string str = txtAnswer.Text;
        double d = double.Parse(str);
        string disp = "" + a + op + b + "=" + str + "  ";
        if (d == result)
            disp += "√";
        else
            disp += "×";
        listBox1.Items.Add(disp);
    }

    private void btnslow_Click(object sender, EventArgs e)
    {
        timexchange.Interval += 500;
    }

    private void rabtn10add_CheckedChanged(object sender, EventArgs e)
    {
        x = 9;
        y = 2;
    }
}

}

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.27 18:06

txtAnswer.Text;里面的内容不是一个合法的浮点数,比如说有多余的空格,数字和符号是全角字符,或者它根本为空。

herozhangbz
herozhangbz   2016.03.28 09:00

你打个断点跟一下代码,看看那个str是什么。你可以用tryparse判断一下能不能转换。if(double.tryparse(str))然后再操作

u011375896
u011375896   2016.03.28 21:00

我去,你牛,parse竟然不判断一下就用,try{}catch{}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
java题库8
1. 一个没有实现Serializable接口的父类,编写一个能够序列化的子类 ,只要父类实现了序列化的接口,或者,子类实现了序列化的接口就可以序列化 “transient”——“瞬态”,先不说这个翻译是否恰当,这个变量关键字一直不曾使用,简单的说就是被瞬态定义的变量不可序列号。或者这么给他换个名字——“不可序列化状态”。 打个比方,如果一个用户有一些敏感信息(譬如密码,银行卡号等),为了安
基于SCOKET的CS聊天工具
做好了不能用 请各位指点,不知道哪里有错误。IP地址不会弄。我的QQ601940219 求大神帮助
Android-Compass
这个是有问题的项目。调试的时候出现source not found错误。求高手指点。
(地主源代码)求解! 做的不够好,求大神指点
(地主源代码)求解! 做的不够好,求大神指点
ELM——HOG
代码有问题 出现内存访问错误 求大神帮忙修改
求大神指点下
集合A,集合B  已经确定A>B  A,B中不可能出现重复   A与B有交集  怎么用代码实现B中值在A中的位置?并将B中不是交集的部分 筛选出来?  例如 A[1,2,3,4,5,6,7,8,9]     B[12,3,8,11,9,13,]    ...
求大神指点!
现在有一个list集合,里面的数据是这样:{消息, 消息, 消息, 消息, 消息, 消息, 消息, 消息, 消息, 消息, 消息, 消息, 评论, 评论, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯, 通讯...
有没有大神指点下错误
-- 19、            查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。 select * from student as s inner join score as sc on s.Sno=sc.Sno where sc.Cno='3-105' and sc.degree> (select degree from Score where Sno=109...
自制串口调试助手
自制串口调试助手,参照网上的代码资源,可以实现基本功能,求各路大神指点
人事资源管理系统
SSH框架+MySQL做的一个人事管理系统,需要的可以借鉴下,不足之处求大神指点