如何允许除以零?
问题描述:
我正在尝试制作一个lillte C#应用程序,它可以计算出你已经完成了多少学业。如何允许除以零?
calc1 = totalIp/totalPidl;
percentageBox.Text = percbox;
percbox = calc1.ToString();
该错误发生在calc1 = totalip/totalPidl; 没有错别字或其他。 我怎样才能允许除以零?
谢谢。
答
这是不是一个好主意,允许除零。你想要什么价值?是否有意义?最好是做这样的事情:
calc1 = totalPidl != 0 ? totalIp/totalPidl : 0; // I assume you want the result to be 0
答
除以0不会产生有效的数学结果。为了避免您可以使用三元运算符,将返回0时totalPidl的例外是0:
calc1 = totalPidl != 0 ? totalIp/totalPidl : 0;
答
,我可以理解你想拥有0
结果,如果你有0
分母。所以,你可以使用三元if
操作:
calc1 = totalPidl == 0 ? 0: totalIp/totalPidl;
答
这就是数学上是不可能。
防止被零除由代码:
if(totalPidl == 0.0)
{
percentageBox.Text = "???";
}
else
{
calc1 = totalIp/totalPidl;
percentageBox.Text = calc1.ToString();
}
答
你无法避免DivideByZeroException。您可以通过捕捉异常忽略它还是有一个条件,做计算
calc1 = 0;
try
{
calc1 = totalIp/totalPidl;
}
finally
{
percentageBox.Text = percbox;
percbox = calc1.ToString();
}
或者
if(totalIp != 0)
{
calc1 = totalIp/totalPidl;
}
percentageBox.Text = percbox;
percbox = calc1.ToString();
你期望的结果,而被零除之前检查0? – Boiethios
你期望的结果是什么? – Sentry
您需要检查'totalPidl'是否为零之前,如果它是零,将一个特殊的消息放入文本框(例如“溢出”),而不是计算结果。我建议不要将显示结果更改为零,因为这里的其他答案... –