为什么双重类型的变量返回Nan
本文关键字:变量 返回 Nan 类型 为什么 | 更新日期: 2023-09-27 18:01:08
我正试图求解一个二次方程。我有double类型的所有变量,以及s变量Nan的结果。
double a, b, c, x1, d, x2, s ;
Console.WriteLine("Enter a value a: ");
a = double.Parse(Console.ReadLine());
Console.WriteLine("Enter a value b: ");
b = double.Parse(Console.ReadLine());
Console.WriteLine("Enter a value c: ");
c = double.Parse(Console.ReadLine());
d = b * b - 4 * a * c;
Console.WriteLine("solution: ");
Console.WriteLine("1) Substitute the values entered in the equation " + "{0} * x^2 + {1} * x + {2} = 0 ", a, b, c);
Console.WriteLine("2) Сalculate the discriminant: d = b * b - 4 * a * c ");
Console.WriteLine("3) D = {0}*{0} - 4*{1}*{2} = {3}", b, a, c, d);
if (d > 0)
{
x1 = (-b + Math.Sqrt(d))/2*a;
x2 = (-b - Math.Sqrt(d))/2*a;
s = (a * Math.Sqrt(x2) )+ (b * x1) + c;
Console.WriteLine("{0} ; {1}",x1,x2);
Console.WriteLine("Сheck: " + "{0} * {1} + {2} * {3} + {4} = {5} ", a, x2, b, x1, c, s);
}
else if (d == 0)
{
x1 = (-b)/2*a;
Console.WriteLine(x1);
}
else if (d < 0)
{
Console.WriteLine("Since the discriminant is less than zero, then the equation has no solution.");
}
下面的字符串返回Nan s=(a*Math.Sqrt(x2((+(b*x1(+c;为什么是楠而不是替身?
为什么是楠而不是双重
NaN不是类型,它是值——我怀疑你得到它是因为x2
是负的。负数的平方根的结果在实数中是未定义的(与复数相反(,因此Math.Sqrt
为负数输入返回NaN("不是数字"(,如文件所示:
d parameter Return value Zero or positive The positive square root of d. Negative NaN Equals NaN NaN Equals PositiveInfinity PositiveInfinity
double.NaN
记录为:
表示一个不是数字(NaN(的值。此字段是常量
…
当操作的结果未定义时,方法或运算符返回NaN。