请帮助Windows窗体计算器

时间:2013-04-21 10:16:48

标签: c#

我是初学者,我用C#(Windows Forms)制作了计算器,只发生了一个问题,所以请帮助我。

问题是当我除0/0 =然后我的代码在这一行崩溃

m_res /= decimal.Parse(m_store[i + 1].ToString());

else if (m_store[i].ToString() == "/")
{
    //Textbox.Text = "";
    m_res /= decimal.Parse(m_store[i + 1].ToString());
    TextBox2.Text = m_res.ToString();
}

3 个答案:

答案 0 :(得分:3)

你可能想要的是

decimal div;
decimal.TryParse(m_store[i + 1].ToString(), out div);
if(div != null && div != 0)
   m_res /= div;

它的基本数学定义没有任何东西可以除以0

编辑:未对此进行测试,但我认为它可以正常运行并提高效率

decimal div;
if(decimal.TryParse(m_store[i + 1].ToString(), out div) && div != 0)
   m_res /= div;

答案 1 :(得分:1)

问题在于你无法将零除以。

尝试类似:

decimal d = decimal.Parse(m_store[i + 1].ToString());
if (d.Equals(0))
    MessageBox("Cannot divide by zero");
else
    mres /= d;

答案 2 :(得分:0)

提示:

  

为了避免除零异常,你显然必须检查   零值的分母。

  

此数字检查将比抛出异常快得多   在运行时。