2017-06-15 88 views
-6

我正在尝试制作一个lillte C#应用程序,它可以计算出你已经完成了多少学业。如何允许除以零?

 calc1 = totalIp/totalPidl; 
     percentageBox.Text = percbox; 
     percbox = calc1.ToString(); 

该错误发生在calc1 = totalip/totalPidl; 没有错别字或其他。 我怎样才能允许除以零?

谢谢。

+2

你期望的结果,而被零除之前检查0? – Boiethios

+0

你期望的结果是什么? – Sentry

+0

您需要检查'totalPidl'是否为零之前,如果它是零,将一个特殊的消息放入文本框(例如“溢出”),而不是计算结果。我建议不要将显示结果更改为零,因为这里的其他答案... –

回答

1

这是不是一个好主意,允许除零。你想要什么价值?是否有意义?最好是做这样的事情:

calc1 = totalPidl != 0 ? totalIp/totalPidl : 0; // I assume you want the result to be 0 
0

除以0不会产生有效的数学结果。为了避免您可以使用三元运算符,将返回0时totalPidl的例外是0:

calc1 = totalPidl != 0 ? totalIp/totalPidl : 0; 
0

,我可以理解你想拥有0结果,如果你有0分母。所以,你可以使用三元if操作:

calc1 = totalPidl == 0 ? 0: totalIp/totalPidl; 
3

这就是数学上是不可能。

防止被零除由代码:

if(totalPidl == 0.0) 
{ 
    percentageBox.Text = "???"; 
} 
else 
{ 
    calc1 = totalIp/totalPidl; 
    percentageBox.Text = calc1.ToString(); 
} 
0

你无法避免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();