C# 为什么我在除以双倍值时出错?

C# 为什么我在除以双倍值时出错?,c#,C#,我正在使用windows窗体。我有一个按钮和3个文本框,我正在尝试分割两个数字 为什么我在textbox1中输入0,在textbox2中输入0,然后单击按钮时,结果=NaN(不是数字)值(应该是0)。当我输入不同的数字时,效果很好,但当我在texstbox1中输入0,在textbox2中输入0时,结果=NaN 当我将0除以0时,我只想在textbox3中显示0或0.00值作为除法过程的结果 private void button1_Click(object sender, EventArgs e

我正在使用windows窗体。我有一个按钮和3个文本框,我正在尝试分割两个数字

为什么我在textbox1中输入0,在textbox2中输入0,然后单击按钮时,结果=NaN(不是数字)值(应该是0)。当我输入不同的数字时,效果很好,但当我在texstbox1中输入0,在textbox2中输入0时,结果=NaN

当我将0除以0时,我只想在textbox3中显示0或0.00值作为除法过程的结果

private void button1_Click(object sender, EventArgs e)
{
    double a, b, result;

    a = Convert.ToDouble( textBox1.Text );
    b= Convert.ToDouble(textBox2.Text);

    result = a / b;     // I tried: result = (a / b) but the results still NaN;

    textBox3.Text = result.ToString();  // I tried: textBox3.Text = result.ToString("0:00") but the results still NaN;
}

被零除是不允许的,那只是数学。为了避免出现异常,您有两种选择

在执行除法之前,测试第二个值是否为零:

result = (b != 0) ? (a / b) : 0;
或捕获将引发的异常:

try
{
    result = a / b;
}
catch (DivideByZeroException)
{
    result = 0;
}

被零除是不允许的,那只是数学。为了避免出现异常,您有两种选择

在执行除法之前,测试第二个值是否为零:

result = (b != 0) ? (a / b) : 0;
或捕获将引发的异常:

try
{
    result = a / b;
}
catch (DivideByZeroException)
{
    result = 0;
}

未定义零除以零的值。这是一个基本的数学性质

在所有可能遇到表达式“x/0”的编程情况下,在尝试除法之前,需要检查分母是否为零

一种解决方案是使用以下代码捕获错误并显示错误消息:

if (b == 0)
    textBox3.Text = "Error, cannot divide by zero";
else {
    result = a / b;
    textBox3.Text = result.ToString();
}

未定义零除以零的值。这是一个基本的数学性质

在所有可能遇到表达式“x/0”的编程情况下,在尝试除法之前,需要检查分母是否为零

一种解决方案是使用以下代码捕获错误并显示错误消息:

if (b == 0)
    textBox3.Text = "Error, cannot divide by zero";
else {
    result = a / b;
    textBox3.Text = result.ToString();
}

0/0是一个不确定的格式0/0是一个不确定的格式除以0将是
double。正不确定度
负不确定度
取决于股息;)被零除将是
双精度。正精度
负精度
取决于股息;)