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);

我不知道这是数学问题还是编程问题。为什么它返回这个奇怪的值?

Sqrt方法不返回数字

-((9 * w * w) / 16)表达式返回一个负值,即-810000

这就是为什么这个方法返回NaN

来自Math.Sqrt的文档;

d parameter  | Return value
Negative     | NaN

从维基百科;

任何正数或负数的平方都是正数,且0的平方等于0。因此,负数不可能有实数的平方根。但是,可以使用更具包容性的数,称为复数,它包含负数的平方根