我正在嘗試製作一個lillte C#應用程序,它可以計算出你已經完成了多少學業。如何允許除以零?
calc1 = totalIp/totalPidl;
percentageBox.Text = percbox;
percbox = calc1.ToString();
該錯誤發生在calc1 = totalip/totalPidl; 沒有錯別字或其他。 我怎樣才能允許除以零?
謝謝。
我正在嘗試製作一個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
爲什麼你會允許除零除?如果除零將發生,則給出帶指定輸出的try catch塊以顯示「沒有完成工作」。 Read this for better understanding
除以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'是否爲零之前,如果它是零,將一個特殊的消息放入文本框(例如「溢出」),而不是計算結果。我建議不要將顯示結果更改爲零,因爲這裏的其他答案... –