Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何允许除以零?_C# - Fatal编程技术网

C# 如何允许除以零?

C# 如何允许除以零?,c#,C#,我正在尝试制作一个小C#应用程序来计算你完成了多少学业 calc1 = totalIp / totalPidl; percentageBox.Text = percbox; percbox = calc1.ToString(); 错误发生在calc1=totalip/totalPidl; 没有打字错误或其他任何问题。 我怎么能允许除以零 谢谢。允许零除不是个好主意。你想要什么价值?这有意义吗?最好这样做: calc1 = totalPidl != 0

我正在尝试制作一个小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块,如果将发生零除,则显示“未完成任何工作”。

除以零不会给出有效的数学结果。为避免出现异常,可以使用三元运算符,当totalPidl为0时,该运算符将返回0:


据我所知,如果您有
0
分母,您希望得到
0
结果。因此,您可以使用三元
if
运算符:

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

这在数学上是不可能的

防止按代码除零:

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

您无法避免被零除异常。您可以通过捕获异常来忽略它,或者在执行计算之前先设置条件并检查0

calc1 = 0;
try
{
   calc1 = totalIp / totalPidl;
}
finally
{
    percentageBox.Text = percbox;
    percbox = calc1.ToString();
}


除以零时,您希望得到什么结果?您希望得到什么结果?在进行除法之前,您需要检查
totalPidl
是否为零-如果为零,则在文本框中输入一条特殊消息(例如“溢出”),而不是计算结果。我建议不要根据这里的其他一些答案将显示的结果更改为零……永远不会有正确的“除以零”,请尝试
totalIp/(totalPidl==0?1:totalPidl)
或其他建议,基于您是希望整个事件为0还是仅提名人。要使此过程更简单:
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();