请帮助在Windows窗体计算器

本文关键字:窗体 计算器 Windows 帮助 | 更新日期: 2023-09-27 18:10:07

我是初学者,我已经在c# (Windows窗体)中制作了计算器,只有一个问题发生,所以请帮助我。

问题是当我除以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();
}

请帮助在Windows窗体计算器

你可能想要的是

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

基本数学定义了没有什么能被0整除

EDIT:没有测试过,但我认为它会工作,更有效率

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

问题是你永远不能除以零。

试试这样写:

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

提示:

要避免除零异常,显然必须检查分母对零值

:

这个数字检查将比抛出异常快得多