2017-06-15 78 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();