Hi琦森 2019-12-06 00:35 采纳率: 85.7%
浏览 601

C# 如何根本性解决中double类型的非空检测 C#计算器

本人大一,学习C#知识时遇到这样一个问题,win10自带的计算器无法进行多项计算,所以想自己写个,的mun1判断的非空问题而无法继续往下写了,下面为运算代码和截图,请csdn大佬支个招

图片说明

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    double reasult=0,memory=0.0;
    double num2,num1;
    double oper;
    string temp;
    private void Form1_Load(object sender, EventArgs e)
    {
        this.Text = "计算器";


    }

    private void Num(object sender, EventArgs e)
    {
        Button a = (Button)sender;//判断数值按钮实现数值输入
        if (numout.Text == "0")
        {
            numout.Text = a.Text;
        }
        else
        {
            numout.Text += a.Text;
        }
    }

    private void yunshuan(object sender, EventArgs e)//实现运算公式
    {
        if (numout.Text != "")
        {
            temp = num1.ToString();
            if (temp != "")
            {

                num2 = double.Parse(numout.Text);
                switch (oper)
                {
                    case '+': num1 = num1 + num2; break;
                    case '-': num1 = num1 - num2; break;
                    case '*': num1 = num1 * num2; break;
                    case '÷':
                        if (num2 == 0)
                        {
                            MessageBox.Show("0不能为除数");
                            break;
                        }
                        else
                        {
                            num1 = num1 / num2; break;
                        }

                }
                 oper = char.Parse(((Button)sender).Text);
                numout.Text = "";
            }
            else
            {
                 numout.Text = num1.ToString();
                 num1 = double.Parse(numout.Text);
                 oper = char.Parse(((Button)sender).Text);
                 numout.Text = "";
                 foot.Text += "运行一次";
            }
        }
    }

    private void button16_Click(object sender, EventArgs e)
    {
        /*
        if (numout.Text != "")
        {
            num2 = double.Parse(numout.Text);
            switch (oper)
            {
                case '+': reasult = num1 + num2; break;
                case '-': reasult = num1 - num2; break;
                case '*': reasult = num1 * num2; break;
                case '÷': if (num2 == 0)
                    {
                        MessageBox.Show("0不能为除数");
                        break;
                    }
                    else
                    {
                        reasult = num1 / num2;break;
                    }

            }

        }
        */
        numout.Text = num1.ToString();
    }

    private void button11_Click(object sender, EventArgs e)
    {

    }
    private void contextMenuStrip1_Opening(object sender, CancelEventArgs e)
    {

    }
}

}

  • 写回答

2条回答

  • Hi琦森 2019-12-06 14:22
    关注

    我试了,if(num!=null)//vs程序提示该表达式始终为true

    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能