C#平方根表达式刚刚赢得';行不通

C#平方根表达式刚刚赢得';行不通,c#,C#,我有一个非常简单的小程序来解二次方程,基本上它可以工作,但由于某些原因它不能计算平方根。我只是听到一个错误,说NaN,但我看不出它怎么不是一个数字 int a = Convert.ToInt16(txta.Text); int b = Convert.ToInt16(txtb.Text); int c = Convert.ToInt16(txtc.Text); listBox1.Items.Add(Convert.ToString(Math.Sqrt(((b * b) -

我有一个非常简单的小程序来解二次方程,基本上它可以工作,但由于某些原因它不能计算平方根。我只是听到一个错误,说
NaN
,但我看不出它怎么不是一个数字

int a = Convert.ToInt16(txta.Text);
int b = Convert.ToInt16(txtb.Text);
int c = Convert.ToInt16(txtc.Text);          

listBox1.Items.Add(Convert.ToString(Math.Sqrt(((b * b) - (4 * a * c)))));

很可能是负数。将其转换为double而不是Int16可能会有所帮助,因为Int16每次都会取整。

它可能会得到一个负数。将其转换为double而不是Int16可能会有所帮助,因为Int16每次都会取整。

它可能会得到一个负数。将其转换为double而不是Int16可能会有所帮助,因为Int16每次都会取整。

它可能会得到一个负数。将其转换为double而不是Int16可能会有所帮助,因为每次Int16都会取整。

转换不是原因,因为如果转换不正确或出现溢出,您将分别得到
FormatException
OverflowException
。尽管如此,因为你在做数学,你可能想转换成双重类型

double a = Convert.ToDouble(txta.Text);
double b = Convert.ToDouble(txtb.Text);
double c = Convert.ToDouble(txtc.Text);
我相信你的表达:
(b*b)-(4*a*c)
就是问题所在。如果计算结果为负数,则将产生
NaN
结果


有关更多信息,请参阅。

转换不是原因,因为如果转换不正确或出现溢出,您将分别得到
格式异常
溢出异常
。尽管如此,因为你在做数学,你可能想转换成双重类型

double a = Convert.ToDouble(txta.Text);
double b = Convert.ToDouble(txtb.Text);
double c = Convert.ToDouble(txtc.Text);
我相信你的表达:
(b*b)-(4*a*c)
就是问题所在。如果计算结果为负数,则将产生
NaN
结果


有关更多信息,请参阅。

转换不是原因,因为如果转换不正确或出现溢出,您将分别得到
格式异常
溢出异常
。尽管如此,因为你在做数学,你可能想转换成双重类型

double a = Convert.ToDouble(txta.Text);
double b = Convert.ToDouble(txtb.Text);
double c = Convert.ToDouble(txtc.Text);
我相信你的表达:
(b*b)-(4*a*c)
就是问题所在。如果计算结果为负数,则将产生
NaN
结果


有关更多信息,请参阅。

转换不是原因,因为如果转换不正确或出现溢出,您将分别得到
格式异常
溢出异常
。尽管如此,因为你在做数学,你可能想转换成双重类型

double a = Convert.ToDouble(txta.Text);
double b = Convert.ToDouble(txtb.Text);
double c = Convert.ToDouble(txtc.Text);
我相信你的表达:
(b*b)-(4*a*c)
就是问题所在。如果计算结果为负数,则将产生
NaN
结果



有关更多信息,请参阅。

有关此错误的输入信息?告诉我们数字。是哪一行导致了问题?作为猜测:其中一个文本框包含无法转换为整数的内容,整数被日化为0,这导致了问题,因为0的sqrt为NAN。解决方案:使用Integer.tryparsear清理inout是否确定
b*b-4*a*c
不是负数?是什么输入导致此错误?告诉我们数字。是哪一行导致了问题?作为猜测:其中一个文本框包含无法转换为整数的内容,整数被日化为0,这导致了问题,因为0的sqrt为NAN。解决方案:使用Integer.tryparsear清理inout是否确定
b*b-4*a*c
不是负数?是什么输入导致此错误?告诉我们数字。是哪一行导致了问题?作为猜测:其中一个文本框包含无法转换为整数的内容,整数被日化为0,这导致了问题,因为0的sqrt为NAN。解决方案:使用Integer.tryparsear清理inout是否确定
b*b-4*a*c
不是负数?是什么输入导致此错误?告诉我们数字。是哪一行导致了问题?作为猜测:其中一个文本框包含无法转换为整数的内容,整数被日化为0,这导致了问题,因为0的sqrt为NAN。解决方案:使用Integer.tryparsear清理inout是否确定
b*b-4*a*c
不是负数?否
Convert.ToInt16()
将引发异常。是的,但问题与
Int16
无关。它会查看不同函数的标记。见不到
Convert.ToInt16()
将引发异常。是的,但问题与
Int16
无关。它会查看不同函数的标记。见不到
Convert.ToInt16()
将引发异常。是的,但问题与
Int16
无关。它会查看不同函数的标记。见不到
Convert.ToInt16()
将引发异常。是的,但问题与
Int16
无关。它会查看不同函数的标记。查看使用double的另一个原因:可能有一个整数乘法会自动溢出。哦,谢谢,我没有想到我输入的测试数据会给我一个负数,非常感谢!使用double的另一个原因是:可能有一个整数乘法会悄悄溢出。哦,谢谢,我没有想到我输入的测试数据会给我一个负数,非常感谢!使用double的另一个原因是:可能有一个整数乘法会悄悄溢出。哦,谢谢,我没有想到我输入的测试数据会给我一个负数,非常感谢!使用double的另一个原因是:可能有一个整数乘法会悄悄溢出。哦,谢谢,我没有想到我输入的测试数据会给我一个负数,非常感谢!