Sqrt方法不返回数字
本文关键字:数字 返回 方法 Sqrt | 更新日期: 2023-09-27 18:06:04
我有一个方法,计算两个偏移在我的代码中的其他东西。我将这些偏移量写入输出,结果是:Isn't number
。当我试图将这些值赋给另一个变量时,这些变量的值为0。
这是我的代码:
int w = 1200;
int h = 1824;
double offsetX = System.Math.Sqrt (-((9 * w * w) / 16));
double offsetY = System.Math.Sqrt (((9 * h * h) / 16) + ((9 * w * w) / 16) - offsetX);
我不知道这是数学问题还是编程问题。为什么它返回这个奇怪的值?
-((9 * w * w) / 16)
表达式返回一个负值,即-810000
。
这就是为什么这个方法返回NaN
。
来自Math.Sqrt
的文档;
d parameter | Return value
Negative | NaN
从维基百科;
任何正数或负数的平方都是正数,且0的平方等于0。因此,负数不可能有实数的平方根。但是,可以使用更具包容性的数,称为复数,它包含负数的平方根