我是初学者,我用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();
}
答案 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)
提示:
为了避免除零异常,你显然必须检查 零值的分母。
和
此数字检查将比抛出异常快得多 在运行时。