fanage 2016-03-27 10:05 采纳率: 0%
浏览 1970

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条回答 默认 最新

  • threenewbee 2016-03-27 10:06
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 使用C#,asp.net读取Excel文件并保存到Oracle数据库
  • ¥15 C# datagridview 单元格显示进度及值
  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配