[英]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.