繁体   English   中英

为什么在我将double值相除时出现错误?

[英]Why I got error when I divide doubles values?

我正在使用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;
}

未定义零除以零。 这是基本的数学特性。

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM