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

    评论

报告相同问题?

悬赏问题

  • ¥15 计算二重积分∫∫e^(x+y)dxdy,其中0≤x≤1,0≤y≤1,试分别用复合辛普森公式(取n=4)以及高斯求积公式(取n=4)计算积分 给出matlab程序
  • ¥15 opencv 无法读取视频
  • ¥15 用matlab 实现通信仿真
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档
  • ¥60 全一数分解素因子和素数循环节位数
  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的